2012-02-08 48 views
34

का उपयोग कर वसंत आरईएसटी एपीआई दस्तावेज़ीकरण मैं एक ऐसा टूल ढूंढ रहा हूं जो मुझे रीस्टफुल एपीआई दस्तावेज उत्पन्न करने में मदद कर सके। मेरा सर्वर जावा में लिखा गया है और स्प्रिंग एमवीसी ढांचे का उपयोग करता है। मेरे पास मेरे सर्वर में दृश्य नहीं हैं। यह 100% रीस्टफुल सेवा है और यह सब जेएसओएन का उपभोग करता है और जेएसओएन से बाहर निकलता है।स्वैगर

मैं सोच रहा था कि Swagger स्प्रिंग एनोटेशन के साथ संगत है या नहीं?

उत्तर

21

वर्तमान में स्प्रिंग एमवीसी स्वैगर मॉड्यूल उपलब्ध नहीं है (वर्डनिक से कम से कम) लेकिन सामान्य रूप से, जेवीएम-आधारित आरईएसटी सेवा पर स्वैगर को सक्षम करना बहुत आसान है।

स्वैगर सर्वर समर्थन दो भागों में विभाजित है - कोर सर्वर और आरईएसटी सेवा के साथ एकीकरण। Swagger github repo देखें। स्वैगर कोर उस दस्तावेज़ को परिभाषित करता है जो आरईएसटी सेवा, पैरामीटर, स्वीकार्य मान, HTTP संचालन इत्यादि का प्रतिनिधित्व करता है। सर्वर एकीकरण इस दस्तावेज़ को आरईएसटी ढांचे की संरचना में तारित करता है। वर्डनिक जर्सी-आरएस के माध्यम से जर्सी का उपयोग करता है और इस एकीकरण के लिए स्वैगर-जैक्सर्स जारी करता है। Swagger-Play मॉड्यूल भी है जो जल्द ही Play मॉड्यूल रिपॉजिटरी को रिलीज़ किया जाएगा।

1) एक com.wordnik.swagger.core.Documentation वस्तु उत्पन्न करने के लिए एक API रीडर जनरेट करें:

आप एक और बाकी ढांचे (वसंत MVC की तरह) पर अकड़ सक्षम करना चाहते हैं, तो आप इन चरणों का पालन। JAX-RS संस्करण के साथ-साथ play के लिए देखें।

2) एक आरईएसटी एंडपॉइंट बनाएं जो क्लाइंट को प्रलेखन ऑब्जेक्ट का JSON/XML संस्करण देता है। फिर, JAX-RS और play

3) संसाधन या ऑब्जेक्ट-स्तरीय पहुंच को लागू करने के अनुरोधों को अवरुद्ध करने के लिए फ़िल्टर जोड़ें।

तो संक्षेप में, इसे आसानी से एक साथ रखा जा सकता है।

+1

क्या शुद्ध जावा आधारित मॉड्यूल बनाना संभव है? – tbruyelle

+17

स्वैगर के लिए एक स्प्रिंगएमवीसी मॉड्यूल अब यहां मौजूद है: https://github.com/martypitt/swagger-springmvc –

+0

क्या आप कृपया स्वैगर टैग कर सकते हैं? यहां देखें: http://stackoverflow.com/documentation/swagger/commit – Stephan

3

यदि आप इंटरैक्टिव एपीआई दस्तावेज़ (विकी स्टाइल सहयोग की आवश्यकता के बिना) उत्पन्न करने के बाद ही हैं, तो I/O Docs बेहतर समाधान होगा, आईएमएचओ सेट अप, उपयोग और कस्टमाइज़ करने के लिए बहुत कम प्रयास की आवश्यकता है।

यह नोडजे और रेडिस पर चल रहा है। आपको केवल अपने एपीआई की एक JSON स्कीमा लिखनी होगी और यह एक HTML/JS साइट जेनरेट करता है जो आपके एपीआई का वर्णन करता है और डेवलपर्स को अपने ब्राउज़र से लाइव खेलने देता है।

मैं अपने सर्वर पर अपने एपीआई को होस्ट करने की योजना बना रहा हूं (जैसा कि किसी को भी एपीआई देखने के लिए 2 अन्य सॉफ्टवेयर स्थापित करने की आवश्यकता है) लेकिन जेएसओएन स्कीमा में पहले से ही एक अच्छी पठनीय और कॉम्पैक्ट संरचना है जो मुझे लगता है कि पर्याप्त होगा अन्य प्रोग्रामर के साथ सहयोग के लिए। यह एक छोटी परियोजना है।

एक similar question है जो आप देखना चाहते हैं।

20

प्रगति here और उदाहरण here में एक स्वैगर-स्प्रिंगएमवीसी कार्यान्वयन है।

spec v1.2 पूरी तरह कार्यान्वित और समर्थित है (यानी, जेनरिक के लिए पूर्ण समर्थन के साथ मॉडल उत्पन्न होते हैं), और यह सक्रिय विकास में है।

+0

यह कुछ साल बाद है। आपके द्वारा सूचीबद्ध उदाहरण प्रोजेक्ट स्वैगर 0.7.0 का उपयोग कर रहा है (इस समय वर्तमान संस्करण 0.8.3 है)। क्या आप पुष्टि कर सकते हैं कि उदाहरण प्रोजेक्ट अभी भी प्रासंगिक है? मुझे अपनी परियोजना को कॉन्फ़िगर करने में समस्या हो रही है। –

+0

@ steve.hanson 0.8.4 जारी किया गया है और इसे रीडमे में नमूना डेमो के लिंक अपडेट कर दिए गए हैं। इसके अलावा विन्यास काफी सरलता से किया गया है –

5

स्प्रिंग एमवीसी के लिए स्वैगर का एक और कार्यान्वयन swagger4spring-web है।

यह स्वैगर-स्प्रिंगएमवीसी के समान है और सभी स्वैगर एनोटेशन का समर्थन करता है और रिटर्न प्रकारों और पैरामीटर के लिए JSON स्कीमा उत्पन्न करता है।यह swagger एनोटेशन के बिना भी काम करता है।

3

Swagger 2.0 स्वैगर का नवीनतम संस्करण है।

अलग-अलग ज़रूरतों के लिए अब स्वैगर के विभिन्न भिन्नताएं उपलब्ध हैं।

io.swagger स्वैगर पुस्तकालयों के लिए पैकेज है और आपको इसे वसंत के साथ जोड़े जाने के लिए अलग वसंत जार की आवश्यकता है। यह swagger का संस्करण 2 है।

io.springfox स्प्रिंगफ़ॉक्स स्वैगर 2 है, जिसमें स्वैगर वसंत के साथ एकीकृत आता है।

com.mangofactory स्प्रिंग वेब एमवीसी ढांचे के साथ एकीकृत swagger है।