HTML दस्तावेज़ में स्वैगर विनिर्देश JSON परिवर्तित करना


88

PHP में लिखे गए कुछ REST API के लिए, मुझे स्वैगर डॉक्यूमेंटेशन बनाने के लिए कहा गया था , और चूंकि मुझे उन मौजूदा API में एनोटेशन जोड़ने और इस तरह के डॉक्यूमेंट बनाने के किसी भी आसान तरीके के बारे में जानकारी नहीं थी, इसलिए मैंने इस एडिटर का इस्तेमाल अभी के लिए कुछ उत्पन्न करने के लिए किया।

मैंने उस एडिटर का उपयोग करके बनाई गई JSON और YAML फ़ाइलों को सहेजा, और अब मुझे अंतिम इंटरैक्टिव स्वैगर प्रलेखन बनाने की आवश्यकता है (यह कथन भोले और अस्पष्ट लग सकता है)।

क्या कोई मुझे बता सकता है कि मैं स्वैगर JSON विनिर्देश फ़ाइल को वास्तविक स्वैगर प्रलेखन में कैसे बदल सकता हूँ?

मैं विंडोज प्लेटफॉर्म पर हूं और एंट / मावेन के बारे में कुछ नहीं जानता।


मैंने [ github.com/wordnik/swagger-uiacing(Swagger UI) की कोशिश की, लेकिन यह मेरे जीन्स को प्रस्तुत नहीं कर रहा है। केवल चेतावनी दी गई है "यह एपीआई स्वैगर का एक पदावनत संस्करण का उपयोग कर रहा है! कृपया अधिक जानकारी के लिए github.com/wordnik/swagger-core/wiki देखें "।
सलिल

जवाबों:


43

मैं इससे संतुष्ट नहीं था swagger-codegenजब मैं ऐसा करने के लिए एक उपकरण की तलाश में था, तो मैं था, इसलिए मैंने अपना लिखा। बूटप्रिंट-स्वैगर पर एक नज़र डालें

इसकी तुलना में मुख्य लक्ष्य swagger-codegenएक आसान सेटअप प्रदान करना है (हालांकि आपको नोडज की आवश्यकता होगी)। और यह आसान अपनी जरूरतों को स्टाइल और टेम्पलेट्स अनुकूलित करने के लिए, जिनमें से एक मुख्य कार्यक्षमता है होना चाहिए bootprint -Project


9
चेतावनी: 11/2016 तक बूटप्रिंट-स्वैगर के लेखक ने स्पष्ट रूप से परियोजना को छोड़ दिया है। स्वैगर-कोडजेन अभी भी अच्छी तरह से समर्थित है।
ब्रेंट मैटेलेले

22
मैं लेखक हूं और पाठ कहता है: "मुझे यह कहने के लिए खेद है कि मैं निकट भविष्य में इस परियोजना के लिए नई सुविधाओं को विकसित नहीं कर पाऊंगा। लेकिन: मैं शायद पुल-अनुरोधों पर चर्चा और विलय कर सकूंगा। और नए संस्करण प्रकाशित करने के लिए। " आप उस परित्यक्त को कॉल कर सकते हैं, मैं इसे "होल्ड पर" कहूंगा। मैं किसी ऐसे व्यक्ति को भी आमंत्रित करूंगा जो परियोजना में योगदान देने में रुचि रखता है।
Nils Knappmeier

1
पाया गया कि spectacleस्वैगर JSON से बहुत बेहतर दिखने वाले दस्तावेज उत्पन्न होते हैं
अनन्तथिंकर

बहुत संघर्ष के बाद मुझे यह उपकरण बहुत उपयोगी लगा:
Api

57

Redoc-cli का उपयोग करने का प्रयास करें

मैं उपयोग कर रहा था bootprint-openapi जिसके द्वारा मैं फाइलों का एक समूह पैदा किया गया था ( bundle.js, bundle.js.map, index.html, main.cssऔर main.css.map) और फिर आप इसे एक एकल में बदल सकते हैं .htmlका उपयोग कर फ़ाइल html-inline एक सरल उत्पन्न करने के लिए index.htmlफ़ाइल।

तब मुझे redoc-cli का उपयोग करना बहुत आसान लगा और आउटपुट वास्तव में -2 कमाल का है, एक एकल और सुंदर index.html फ़ाइल है।

स्थापना :

npm install -g redoc-cli

उपयोग :

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

8
यह टूल वास्तव में उल्लिखित सभी टूल का सबसे सुंदर आउटपुट बनाता है।
जैकब मोरेवेक

1
यह अभी तक imo द्वारा सबसे अच्छा है, और जब से हम इसे उन डेवलपर्स के लिए बना रहे हैं जो डेस्कटॉप का उपयोग कर रहे हैं, आउटपुट आकार एक गैर-मुद्दा है।
मील का पत्थर

3
सीधे निष्पादन योग्य नाम का उपयोग करना हमेशा काम नहीं करता है, इसके द्वारा निष्पादन npx redoc-cli ...अधिक भरोसेमंद होता है।
क्रुकिंग बिल्ली का बच्चा

2
बहुत सुंदर आउटपुट। सुझाव के लिए धन्यवाद।
साहिल जैन

1
यह एक भयानक उपकरण है !! अद्भुत सुझाव भाई के लिए धन्यवाद विकास गहरी !! निश्चित रूप से बूटस्ट्रैप-ओपेनपी की तुलना में बेहतर और कम अनाड़ी तरीका!
चतुर्वेदी सौरभ

19

की जाँच करें सुंदर-लूट

यह है

  1. समान दिखने वाले स्वैगर-संपादक के सही पैनल
  2. खोज / फ़िल्टर
  3. स्कीमा फोल्डिंग
  4. लाइव प्रतिक्रिया
  5. एकल HTML फ़ाइल के रूप में आउटपुट

मैं स्वैगर संपादक को देख रहा था और उसने सोचा कि यह पूर्वावलोकन फलक निर्यात कर सकता है, लेकिन यह नहीं निकला। इसलिए मैंने इसका अपना संस्करण लिखा।

पूर्ण प्रकटीकरण: मैं उपकरण का लेखक हूं।


1
मैंने उचित सीएलआई और एपीआई प्रवेश बिंदुओं के साथ एक सरल और आदर्श उपकरण के रूप में सुंदर-स्वैग पाया है। मेरी एक और केवल शिकायत (और जिसने मुझे स्वैगर-उई की जटिलता से निपटने के लिए मजबूर किया) वह वस्तु संरचना / विस्तार को सही ढंग से संभालने में अपनी विफलता थी। allOfदस्तावेज़ का कोई भी उपयोग undefined, सरलतम परिदृश्यों में भी उत्पन्न होता है (एक ही वस्तु को "मर्ज करना", बिल्कुल उपयोग नहीं करने के बराबर allOf)।
HonoredMule

3
सिर्फ allOfआपके लिए फीचर रोल आउट किया गया है। इसकी जांच - पड़ताल करें।
TLJ

2
Swagger / OpenAPI V3
SeinopSys

18

सब कुछ बहुत मुश्किल या बुरी तरह से प्रलेखित था इसलिए मैंने इसे एक सरल स्क्रिप्ट स्वैगर-yaml-to-html.py के साथ हल किया , जो इस तरह से काम करता है

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

यह YAML के लिए है, लेकिन JSON के साथ काम करने के लिए इसे संशोधित करना भी तुच्छ है।


यह शुद्ध सोना है!
ज़मीरको

16

देखें अकड़-api / अकड़-codegen GitHub पर परियोजना; परियोजना README यह दिखाता है कि स्थिर HTML उत्पन्न करने के लिए इसका उपयोग कैसे करें। स्थैतिक HTML एपीआई प्रलेखन उत्पन्न देखें ।

अगर आप swagger.json देखना चाहते हैं तो आप Swagger UI को इंस्टॉल कर उसे चला सकते हैं। आप इसे एक वेब सर्वर (डिस्टर्ब फोल्डर के बाद आप रीपो क्लोन से गिटहब) पर तैनात करते हैं और अपने ब्राउज़र में स्वैगर यूआई देखें। यह एक जावास्क्रिप्ट ऐप है।


धन्यवाद। मेरी समस्या यह थी कि स्वैगर-यूआई 2.0 की युक्ति को स्वीकार नहीं कर रहा था। हालांकि, यह सबसे सरल उत्तर की तरह दिखता है, इसलिए मैं इसे (अभी के लिए) स्वीकार करूंगा।
सलिल

Swagger उपकरण अभी भी 2.0 के लिए विकसित हो रहे हैं। हालाँकि, मैंने पाया है कि स्वैगर UI मेरी 2.0 फ़ाइलों के लिए काम करता है जो "स्वैगर" से शुरू होती हैं: "2.0",
djb

इसके अलावा, स्वैगर संपादक से, आप JSON कल्पना (YAML के रूप में नहीं, बल्कि JSON) के रूप में निर्यात कर सकते हैं और स्वैगर UI को पढ़ने में सक्षम होना चाहिए। (नोट: swagger.json को Swagger UI ऐप के समान होस्ट / पोर्ट पर होना चाहिए, या आप CORS को सक्षम करें। GitHub पर Swagger Editor में README.md देखें
djb915

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>

आपको बस उसी स्थान से मार्ग / / to / my / swagger.yaml की आवश्यकता है।
(या कोर हेडर का उपयोग करें)


बहुत अच्छे धन्यवाद! मैंने <लिंक rel = "स्टाइलशीट" href = " petstore.swagger.io/swagger-ui.css "> <script src = " petstore.swagger.io/swagger-ui-bundle.js "></script > का उपयोग किया है।
एरंडो सेप

1
मैंने इसे सबसे अच्छा समाधान पाया, किसी भी चीज की स्थापना के साथ नहीं!
KurioZ7

बेहद मददगार। आपने बहुत समय बचाया।
कल्पेश खुल्ले

7

आप स्वैगर ui को भी डाउनलोड कर सकते हैं: https://github.com/swagger-api/swagger-ui , डिस्ट फ़ोल्डर ले जाएं , index.html संशोधित करें: कंस्ट्रक्टर बदलें

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. क्लोन स्वैगर-पीएचपी / लाइब्रेरी
  5. क्लोन स्वैगर-यूआई / लाइब्रेरी
  6. एपीआई के लिए संसाधन और मॉडल php कक्षाएं बनाएं
  7. Json उत्पन्न करने के लिए PHP फ़ाइल को निष्पादित करें
  8. Api-doc.json में json का रास्ता दें
  9. Api-doc.json का रास्ता index.php में स्वैगर-यूआई डिस्ट फ़ोल्डर के अंदर दें

यदि आपको कोई अन्य सहायता चाहिए तो कृपया बेझिझक पूछें।


1
क्या कोई ऑनलाइन संपादक (स्वैगर-संपादक के अलावा) है जो मेरे लिए यह उत्पन्न कर सकता है? अगर कोई सरल तरीका है तो मैं अपने PHP APIs को एनोटेट नहीं करना चाहता। समस्या, मुझे समझ में आया है कि स्वैगर-एडिटर स्वैगर स्पेक v2.0 उत्पन्न करता है, और स्वैगर-उई अब तक इसे नहीं संभालता है।
सलिल

@ सब मुझे पता है कि स्वैगर इसे ऑन-लाइन एडिटर यानी Editor.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);

दुर्भाग्य से यह केवल OpenAPI 2.0 का समर्थन करता है, लेकिन OpenAPI 3.0 का नहीं ।


2

स्वैगर एपीआई 3.0 के लिए, ऑनलाइन स्वैगर संपादक से एचटीएमएल 2 क्लाइंट कोड उत्पन्न करना मेरे लिए बहुत अच्छा काम करता है!


1

मुझे यह टूल एपी-एचटीएमएल नामक बहुत उपयोगी लगा है। यह बहुत सारी संभावनाओं के साथ एक भयानक html5 यूआई उत्पन्न कर रहा है।

ऑनलाइन या क्लाई टूल के माध्यम से जनरेट करने के विकल्प हैं ।

यहाँ "एपीआई-एचटीएमएल" पर डेमो बिल्ड का एक लिंक है: पालतू-डेमो

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.