2016-09-01 34 views
11

के खिलाफ जेएसओएन को मान्य करना मैंने कुछ जेएसओएन फाइलों से एक एपीआई स्पेक बनाया है और मैं परीक्षण करने की कोशिश कर रहा हूं कि फाइल एपीआई स्पेक के खिलाफ मान्य है या नहीं।स्वैगर एपीआई स्कीमा

जेएसओएन स्कीमा के खिलाफ सत्यापन करने के लिए कुछ अच्छे उपकरण हैं, लेकिन मुझे स्वैगर (एपीआई स्कीमा बनाने के लिए टूल) में बनाए गए चश्मे के खिलाफ सत्यापन करने का कोई टूल नहीं मिला। मुझे मिला एकमात्र समाधान स्वैगर-संपादक में क्लाइंट/सर्वर उत्पन्न कर रहा है, यह काफी बोझिल है।

क्या स्वैगर स्कीमा के खिलाफ JSON को सत्यापित करने के लिए पहले से ही एक मौजूदा उपकरण है?

+1

क्या आप यह सत्यापित करना चाहते हैं कि आपका स्पेक एक वैध ओपनएपीआई (एफका। स्वैगर) spec है या मान्य है कि इस स्पेस के कार्यान्वयन से JSON उत्पन्न होगा जो आपके JSON स्कीमा के संबंध में मान्य है? –

+1

प्रश्न पूरी तरह से यह जांचने के बारे में है कि क्या JSON OpenAPI spec के विरुद्ध मान्य है या नहीं। –

+0

क्या आपने https://medium.com/@betz.mark/validate-json-models-with-swagger-and-bravado-5fad6b21a825 पर देखा है? –

उत्तर

9

अरनॉड वहाँ दो अलग-अलग सवाल यहाँ हैं कि सही है।

आप मान्य करने के लिए है कि आपकी कल्पना एक वैध OpenAPI है चाहते हैं (fka। स्वैगर) विशिष्ट जानकारी

आप

  • online Swagger editor करने के लिए अपने कल्पना कॉपी कर सकते हैं और यह त्रुटियों फेंक देते हैं। source के माध्यम से एक त्वरित गोताखोरी मुझे यह नहीं बताती कि यह त्रुटियों को बनाने के लिए क्या उपयोग कर रहा है, लेकिन ऐसा लगता है कि ऐसा करने के लिए सर्वर से संपर्क नहीं किया जा रहा है ...
  • जावा के लिए आधिकारिक swagger-parser का उपयोग करें।
  • जावास्क्रिप्ट (ब्राउज़र या नोड) के लिए अनौपचारिक swagger-parser का उपयोग करें।

या मान्य है कि इस कल्पना के एक कार्यान्वयन JSON जो आपके JSON स्कीमा के बारे में मान्य है का उत्पादन होगा?

दूसरे शब्दों में, यहां अनुरोध या प्रतिक्रिया निकाय से कुछ JSON है, क्या यह सही है?

स्वैगर अपने schema objects के लिए जेएसओएन स्कीमा नामक एक और मानक पर निर्भर करता है, जो वास्तव में JSON (एंडपॉइंट्स या मेटाडाटा के बजाए) का वर्णन करता है। स्वैगर जेएसओएन स्कीमा का एक सबसेट का उपयोग करता है (गायब: oneOf, patternProperties, दूसरों के बीच)। इसके लिए, आप एक JSON स्कीमा सत्यापनकर्ता का उपयोग कर सकते हैं। 37 listed here हैं; मैं this online validator पर एक चिल्लाऊंगा जो वाईएएमएल स्कीमा का भी समर्थन करता है।

लेकिन, जब मैंने कहा कि स्वैगर जेएसओएन एपीआई के उप-समूह पर निर्भर करता है, तो मैंने झूठ बोला। ऐसे कुछ निश्चित क्षेत्र हैं जिनके पास स्वैगर में विशेष अर्थ है जो JSON स्कीमा का हिस्सा नहीं है। उनमें से एक discriminator है जिसका उपयोग बहुरूपता के लिए किया जाता है। मुझे एक स्वैगर सत्यापनकर्ता से अवगत नहीं है जो discriminator को संसाधित कर सकता है। Swagger के लिए fair number of tools हैं और कुछ सत्यापन करने का दावा करते हैं, लेकिन कई पुराने संस्करणों के लिए छोड़ दिया गया है, फीचर-पूर्ण नहीं, अन्य तकनीकों से जुड़ा हुआ है, और इसी तरह। यदि कोई परिपक्व और अच्छी तरह से बनाए रखा लाइब्रेरी है जो मुझे याद आ रही है, तो मुझे जानना अच्छा लगेगा।

+0

मुझे एक ही स्थिति है और यह सहायक था। कुछ काम के साथ, मैं अपनी खुद की स्क्रिप्ट लिखने में सक्षम था जो स्वैगर द्वारा परिभाषित जेएसओएन स्कीमा के साथ मेरे सर्वर के प्रतिक्रिया पेलोड को मान्य कर सकता है। मैंने ऐसा करने के लिए कुछ एक्सप्रेस मिडलवेयर लिखा था। मैं जो चाहता हूं उसे करने के लिए स्वैगर का उपयोग करने की कोशिश करने के बजाय, मैं उस स्कीमा ऑब्जेक्ट का उपयोग कर सकता हूं जिस पर यह निर्भर करता है। धन्यवाद! – Tina

+0

दूसरे के लिए, मैं बाहरी स्कीमा सत्यापनकर्ता के बिना इसे कैसे कार्यान्वित करूं? मैं सिर्फ एक (swagger) स्कीमा के खिलाफ एक स्कीमा का एक उदाहरण मान्य करना चाहता हूँ। मुझे यह कैसे करना है? धन्यवाद। – Nikhita

+0

आंतरिक रूप से ऐसा लगता है कि swagger z-schema json validator का उपयोग कर रहा है, इसलिए सैद्धांतिक रूप से आप यह देखने के लिए देखेंगे कि कौन सी सुविधाएं उपलब्ध हैं? https://github.com/zaggino/z-schema – chrismarx

संबंधित मुद्दे