সোয়াগার স্পেসিফিকেশন জেএসওএনকে HTML ডকুমেন্টেশনে রূপান্তর করা


90

পিএইচপি-তে লিখিত কিছু REST এপিআই-এর জন্য আমাকে সোয়াগার ডকুমেন্টেশন তৈরি করতে বলা হয়েছিল এবং যেহেতু আমি বিদ্যমান বিদ্যমান এপিআইগুলিতে টীকা যুক্ত করার কোনও সহজ উপায় সম্পর্কে অবগত নই এবং এই জাতীয় নথি তৈরি করলাম, তাই আপাতত কিছু উত্পন্ন করার জন্য আমি এই সম্পাদকটি ব্যবহার করেছি ।

আমি সেই সম্পাদক ব্যবহার করে তৈরি করা JSON এবং YAML ফাইলগুলি সংরক্ষণ করেছিলাম এবং এখন আমার চূড়ান্ত ইন্টারেক্টিভ সোয়াগার ডকুমেন্টেশন তৈরি করতে হবে (এই বিবৃতিটি নিষ্পাপ এবং অস্পষ্ট মনে হতে পারে)।

কেউ দয়া করে আমাকে কীভাবে আমি সোয়াগার জেএসএন স্পেসিফিকেশন ফাইলটিকে প্রকৃত সোয়াগার ডকুমেন্টেশনে রূপান্তর করতে পারি তা জানতে পারেন?

আমি উইন্ডোজ প্ল্যাটফর্মে আছি এবং এন্ট / ম্যাভেন সম্পর্কে কিছুই জানি না।


আমি চেষ্টা করেছি [ github.com/wordnik/swagger-ui মেড ( সোয়াগার ইউআই) তবে এটি আমার জসনকে রেন্ডার করে না। দেখানো একমাত্র সতর্কতা হ'ল "এই এপিআই সোয়াগারের একটি অবজ্ঞাত সংস্করণ ব্যবহার করছে! দয়া করে আরও তথ্যের জন্য github.com/wordnik/swagger-core/wiki দেখুন"।
সলিল

উত্তর:


43

আমি swagger-codegenযখন এটি করার জন্য কোনও সরঞ্জামের সন্ধান করছিলাম তখন আমি সন্তুষ্ট ছিল না , তাই আমি আমার নিজের লেখা। কটাক্ষপাত আছে bootprint-ঝকঝকে

তুলনায় মূল লক্ষ্য swagger-codegenহ'ল একটি সহজ সেটআপ সরবরাহ করা (যদিও আপনাকে নোডেজ লাগবে)। এবং স্টাইলিং এবং টেমপ্লেটগুলি আপনার নিজের প্রয়োজনের সাথে খাপ খাইয়ে নেওয়া সহজ হওয়া উচিত যা বুটপ্রিন্ট- প্রকল্পের মূল কার্যকারিতা


9
সতর্কতা: 11/2016 পর্যন্ত বুটপ্রিন্ট-সোয়াগারটির লেখক দৃশ্যত প্রকল্পটি ত্যাগ করেছেন। swagger-codegen এখনও ভাল সমর্থিত।
ব্রেন্ট মাতজেল 21

22
আমি লেখক এবং পাঠ্যটি বলেছেন: "আমি দুঃখিত যে এই প্রকল্পের জন্য অদূর ভবিষ্যতে নতুন বৈশিষ্ট্যগুলি বিকাশ করতে পারব না বলে আমি দুঃখিত But তবে: আমি সম্ভবত পুল-অনুরোধগুলি নিয়ে আলোচনা এবং মার্জ করতে সক্ষম হব, এবং নতুন সংস্করণ প্রকাশ করতে। " আপনি যে পরিত্যক্ত কল করতে পারেন, আমি এটি "হোল্ড" বলব। প্রকল্পে অবদান রাখতে আগ্রহী যে কাউকে আমিও আমন্ত্রণ জানাব।
নিলস কেনাপমিয়ার

4
পাওয়া গেছে যে spectacleসোয়াগার জেএসওএন থেকে অনেক বেশি সুদর্শন ডকুমেন্টেশন তৈরি করে
অনন্তকালীন সংযোগকারী

61

রেডোক-ক্লাইটি ব্যবহার করার চেষ্টা করুন ।

আমি ব্যবহার করছিলেন bootprint-openapi যার দ্বারা আমি ফাইল একটি গুচ্ছ উৎপাদিত হয়েছিল ( bundle.js, bundle.js.map, index.html, main.cssএবং main.css.map) এবং তারপর আপনি এটি একটি একক মধ্যে রূপান্তর করতে পারেন .htmlব্যবহার ফাইল এইচটিএমএল-ইনলাইন একটি সহজ জেনারেট করতে index.htmlফাইল।

তারপরে আমি redoc-cime ব্যবহার করা খুব সহজ খুঁজে পেয়েছি এবং আউটপুট সত্যিই -2 দুর্দান্ত, একক এবং সুন্দর সূচক html ফাইল।

ইনস্টলেশন :

npm install -g redoc-cli

ব্যবহার :

redoc-cli bundle -o index.html swagger.json

8
এই সরঞ্জামটি উল্লিখিত সমস্ত সরঞ্জামগুলির মধ্যে সবচেয়ে সুন্দর আউটপুট তৈরি করে।
জাকুব মোরাভেক

উত্পন্ন একক এইচটিএমএল ফাইলটি বেশ বড়। কাস্টম এইচটিএমএল থেকে লাইভ-রেন্ডারিংয়ের ক্ষেত্রেও জেএস লাইব্রেরি নির্ভরতা (~ 800 কেবি) is কেউ কি জানেন কীভাবে আকার হ্রাস করা যায়?
aaronqli

4
এটি ইমো অনুসারে সেরা,
milosmns

4
প্রত্যক্ষ সম্পাদনযোগ্য নাম ব্যবহার সবসময় কার্যকর হয় না, এর দ্বারা কার্যকর করা npx redoc-cli ...আরও নির্ভরযোগ্য।
বিড়ালছানা

21

সবকিছু খুব জটিল বা খারাপভাবে নথিভুক্ত ছিল তাই আমি এটি একটি সহজ স্ক্রিপ্ট swagger-yaml-to-html.py দিয়ে সমাধান করেছি , যা এটির মতো কাজ করে which

python swagger-yaml-to-html.py < /path/to/api.yaml > doc.html

এটি YAML এর জন্য তবে এটি JSON এর সাথে কাজ করার জন্য পরিবর্তন করাও ক্ষুদ্র v


ডক হিসাবে এখন উপলব্ধ! github.com/yousan/swagger-yaml-to-html
noamtm

19

সুন্দর-সোয়াগ পরীক্ষা করে দেখুন

ইহা ছিল

  1. Swagger- সম্পাদক এর ডান প্যানেল হিসাবে অনুরূপ
  2. অনুসন্ধান / ফিল্টার
  3. স্কিমা ভাঁজ
  4. সরাসরি প্রতিক্রিয়া
  5. একক এইচটিএমএল ফাইল হিসাবে আউটপুট

আমি সোয়াগার সম্পাদককে দেখছিলাম এবং ভেবেছিলাম এটি পূর্বরূপ ফলকটি রফতানি করতে পারে তবে দেখা গেল না out সুতরাং আমি এটির নিজস্ব সংস্করণ লিখেছি।

সম্পূর্ণ প্রকাশ: আমি হাতিয়ারটির লেখক।


4
আমি উপযুক্ত সিএলআই এবং এপিআই এন্ট্রি পয়েন্ট সহ একটি সোজা এবং আদর্শ সরঞ্জাম হিসাবে সুন্দর-সোয়াগ খুঁজে পেয়েছি। আমার একমাত্র অভিযোগ (এবং যেটি আমাকে পরিবর্তে সোয়াগার-ইউআইয়ের জটিলতা মোকাবেলা করতে বাধ্য করেছিল) সেটি হ'ল অবজেক্ট রচনা / এক্সটেনশন সঠিকভাবে পরিচালনা করতে ব্যর্থতা। allOfদস্তাবেজটির যে কোনও ব্যবহারই উত্সাহিত করে undefined, এমনকি সহজ পরিস্থিতিতেও ("একীকরণে" মার্জ করা ", একেবারেই ব্যবহার না করার সমতুল্য allOf))।
সম্মানিতুল

4
আপনার জন্য সবেমাত্র রোল আউট allOfবৈশিষ্ট্য। এটা দেখ.
টিএলজে

4
Swagger / OpenAPI V3
SeinopSys

16

দেখুন ঝকঝকে-API / ঝকঝকে-codegen GitHub থেকে প্রকল্প; প্রকল্প README স্থির এইচটিএমএল উত্পাদন করতে কীভাবে এটি ব্যবহার করবেন তা দেখায়। দেখুন জেনারেট স্ট্যাটিক এইচটিএমএল API ডকুমেন্টেশন

আপনি যদি swagger.json দেখতে চান তবে আপনি Swagger UI ইনস্টল করে চালাতে পারেন। আপনি কেবল এটি একটি ওয়েব সার্ভারে স্থাপন করুন (গিটহাব থেকে রেপো ক্লোন করার পরে ডিস্ট ফোল্ডার) এবং আপনার ব্রাউজারে সোয়াগার ইউআই দেখুন। এটি একটি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন।


ধন্যবাদ আমার সমস্যাটি ছিল সোয়াগার-ইউআই ২.০ স্পেকটি গ্রহণ করছে না। তবে এটি সহজ উত্তরটির মতো দেখায় তাই আমি এটি গ্রহণ করব (আপাতত)।
সলিল

সোয়াগার সরঞ্জামগুলি এখনও 2.0 এর জন্য বিকশিত হচ্ছে। তবে, আমি স্ব্যাগার ইউআই খুঁজে পেয়েছি যে আমার 2.0 ফাইলগুলি "সোয়াগার": "2.0" দিয়ে শুরু হয়
ডিজেবি

এছাড়াও, সোয়াগার সম্পাদক থেকে আপনি জেএসওএন স্পেকটি রফতানি করতে পারেন (ওয়াইএএমএল হিসাবে নয় তবে জেএসওএন হিসাবে) এবং সোয়াগার ইউআই এটি পড়তে সক্ষম হওয়া উচিত। (দ্রষ্টব্য: সোয়াগার.জেসন অবশ্যই সোয়াগার ইউআই অ্যাপ্লিকেশন হিসাবে একই হোস্ট / পোর্টে থাকতে হবে, বা আপনাকে সিওআরএস সক্ষম করতে হবে; গিটিহাবের সোয়াগার সম্পাদকটিতে
README.md দেখুন

14

আমি প্রচুর সময় ব্যয় করেছি এবং প্রচুর বিভিন্ন সমাধানের চেষ্টা করেছি - শেষ পর্যন্ত আমি এইভাবে এটি করেছি:

<html>
    <head>    
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swagger-ui-dist@3.17.0/swagger-ui.css">
        <script src="//unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js"></script>
        <script>

            function render() {
                var ui = SwaggerUIBundle({
                    url:  `path/to/my/swagger.yaml`,
                    dom_id: '#swagger-ui',
                    presets: [
                        SwaggerUIBundle.presets.apis,
                        SwaggerUIBundle.SwaggerUIStandalonePreset
                    ]
                });
            }

        </script>
    </head>

    <body onload="render()">
        <div id="swagger-ui"></div>
    </body>
</html>

আপনি শুধু থাকতে হবে পাথ / থেকে / আমার / swagger.yaml একই অবস্থানে থেকে দায়িত্ব পালন করেন।
(বা CORS শিরোনাম ব্যবহার করুন)


অান্তরিক ধন্যবাদ! আমি <লিঙ্ক রিল = "স্টাইলশিট" href = " পেটসটোর.সওয়্যাগার.ইও / এসওয়াগার- লুইএসএস "> <স্ক্রিপ্ট src = " petstore.swagger.io/swagger-ui-bundle.js "></script > ব্যবহার করেছি
ইরান্দো

7

আপনি এ থেকে সোয়াগার ইউআইও ডাউনলোড করতে পারেন: https://github.com/swagger-api/swagger-ui , ডিস্ট ফোল্ডারটি ধরুন, সূচিপত্র পরিবর্তন করুন: কনস্ট্রাক্টর পরিবর্তন করুন

const ui = SwaggerUIBundle({
    url: ...,

মধ্যে

const ui = SwaggerUIBundle({
    spec: YOUR_JSON,

এখন ডিস্ট ফোল্ডারে আপনার যা যা প্রয়োজন তা রয়েছে এবং এটি যেমন বিতরণ করা যায়


2

এই লিঙ্কটি একবার দেখুন: http://zircote.com/swagger-php/installation.html

  1. ফার ফাইলটি ডাউনলোড করুন https://github.com/zircote/swagger-php/blob/master/swagger.phar
  2. সুরকার ইনস্টল করুন https://getcomposer.org/download/
  3. কম্পোজার.জেসন তৈরি করুন
  4. ক্লোন swagger-php / লাইব্রেরি
  5. ক্লোন swagger-ui / লাইব্রেরি
  6. API এর জন্য রিসোর্স এবং মডেল পিএইচপি ক্লাস করুন
  7. জসন তৈরি করতে পিএইচপি ফাইলটি কার্যকর করুন
  8. এপিআই-ডক.জসনে জসনের পথ দিন
  9. Swagger-ui dist ফোল্ডারের ভিতরে index.php এ এপি-ডক.জসনের পথ দিন

আপনার যদি অন্য সহায়তার প্রয়োজন হয় তবে নির্দ্বিধায় জিজ্ঞাসা করুন।


4
এমন কোনও অনলাইন সম্পাদক (সোয়াগার-সম্পাদক ছাড়া অন্য) আমার জন্য এটি তৈরি করতে পারে? যদি কোনও সহজ উপায় থাকে তবে আমি আমার পিএইচপি এপিআইগুলি টীকা দিতে চাই না। সমস্যাটি, আমি বুঝতে পেরেছি যে swagger- সম্পাদক swagger spec v2.0 উত্পন্ন করে এবং swagger-ui এখনকার মতো পরিচালনা করে না।
সলিল

@ সেলিল আমি যা জানি, তা হ'ল সোয়াগার এটি অন-লাইন সম্পাদক অর্থাৎ edit.swagger.wordnik.com এর নিজস্ব মালিকানা সরবরাহ করে, আমি অন্য কোনও অনলাইন-সম্পাদক সম্পর্কে অবগত নই, যদি আপনি আমাদের সাথে এটির কোনও ভাগ খুঁজে পান, ধন্যবাদ :)
সৈয়দ রাজা মেহেদি

2

একটি ছোট জাভা প্রোগ্রাম রয়েছে যা একটি ইয়ামল ফাইল থেকে ডক্স তৈরি করে (অ্যাডোক বা এমডি)।

Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
        .withMarkupLanguage(MarkupLanguage.ASCIIDOC)
        .withSwaggerMarkupLanguage(MarkupLanguage.ASCIIDOC)
        .withOutputLanguage(Language.DE)
        .build();

Swagger2MarkupConverter builder = Swagger2MarkupConverter.from(yamlFileAsString).withConfig(config).build();
return builder.toFileWithoutExtension(outFile);

দুর্ভাগ্যক্রমে এটি কেবল ওপেনপিআই ২.০ সমর্থন করে তবে ওপেনপিআই ৩.০ নয়


2

সোয়াগার এপিআই 3.0 এর জন্য, অনলাইন সোয়াগার সম্পাদক থেকে এইচটিএমএল 2 ক্লায়েন্ট কোড তৈরি করা আমার পক্ষে দুর্দান্ত কাজ করে!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.