API कॉन्ट्रैक्ट टेस्टिंग क्या है?
API कॉन्ट्रैक्ट किसी इंटरफ़ेस का सहमत विवरण है — उसके एंडपॉइंट, पैरामीटर, रिक्वेस्ट व रिस्पॉन्स स्कीमा और स्टेटस कोड — जो आमतौर पर OpenAPI दस्तावेज़ के रूप में लिखा जाता है। कॉन्ट्रैक्ट टेस्टिंग सर्विस के वास्तविक रिस्पॉन्स की उस विवरण से तुलना करती है, ताकि बदला हुआ फ़ील्ड नाम या टाइप दूसरी तरफ़ को तोड़ने से पहले प्रोड्यूसर या कंज़्यूमर के पास पकड़ा जाए।
गाइड पढ़ें: API टेस्टिंग क्या है? REST API कैसे टेस्ट करें
Swagger JSON फ़ॉर्मेटर कैसे इस्तेमाल करें
- Swagger 2.0 JSON पेस्ट करें।
- सुंदर JSON, minified JSON या YAML चुनें और तय करें कि paths तथा definitions सॉर्ट करनी हैं या नहीं।
- फ़ॉर्मेट किया हुआ दस्तावेज़ कॉपी करें और endpoint तथा definition की तालिकाएँ देखें।
Swagger JSON फ़ॉर्मेटर की खूबियाँ
- Swagger 2.0 JSON को सुंदर बनाएँ, minify करें या YAML में बदलें
- वर्शन की पहचान — OpenAPI 3.x या स्पेक से बाहर के JSON के लिए साफ़ चेतावनियों के साथ
- endpoint की सूची (मेथड, path, operationId, सारांश, tag, रिस्पॉन्स कोड) और definitions की तालिका
- schemes, host तथा basePath से बना बेस URL
- फ़ॉर्मेट किए हुए आउटपुट के साथ-साथ संरचना की समस्याओं की सूची
Swagger JSON फ़ॉर्मेटर का उदाहरण
Petstore स्पेक की सूची बनाना
इनपुट:
{"swagger":"2.0","info":{"title":"Petstore","version":"1.0.5"},"host":"petstore.swagger.io","basePath":"/v2","paths":{"/pet/{petId}":{"get":{"operationId":"getPetById",…}}}}आउटपुट:
Specification: Swagger 2.0 · Base URL: https://petstore.swagger.io/v2
Endpoints: GET /pet/{petId} getPetById — responses 200, 404
Definitions: Pet (object) — id, name, statusSwagger JSON फ़ॉर्मेटर के बारे में अक्सर पूछे जाने वाले सवाल
Swagger 2.0 और OpenAPI में क्या अंतर है?
जब स्पेसिफ़िकेशन Linux Foundation के पास गया, तब Swagger 2.0 का नाम बदलकर OpenAPI 2.0 कर दिया गया। OpenAPI 3.x ने इसकी संरचना बदली: host/basePath/schemes की जगह servers आए, definitions की जगह components.schemas और body पैरामीटर की जगह requestBody। यह टूल 2.0 दस्तावेज़ों के लिए है, पर 3.x को भी फ़ॉर्मेट कर देता है।
endpoint तालिका में क्या दिखता है?
हर ऑपरेशन अपने मेथड, path, operationId, सारांश, tag और दस्तावेज़ में दिए गए रिस्पॉन्स कोड के साथ — समीक्षा तथा टेस्ट प्लानिंग के लिए झटपट सूची।
क्या मैं सुंदर बनाने के बजाय minify कर सकता हूँ?
हाँ। सबसे छोटा मान्य दस्तावेज़ बनाने के लिए "Minified JSON" चुनें — कॉन्फ़िगरेशन या API gateway में एम्बेड करने के लिए उपयोगी।
क्या यह Swagger 2.0 को OpenAPI 3 में बदलता है?
नहीं — यह सिर्फ़ फ़ॉर्मेट, सॉर्ट और JSON/YAML रूपांतरण करता है। संरचनात्मक माइग्रेशन के लिए swagger2openapi जैसा कन्वर्टर इस्तेमाल करें और फिर नतीजे को OpenAPI Validator से जाँचें।
संदर्भ
- OpenAPI SpecificationREST API के वर्णन का मानक: पाथ, ऑपरेशन, पैरामीटर, स्कीमा, रिस्पॉन्स और सिक्योरिटी स्कीम।
- JSON Schema SpecificationJSON दस्तावेज़ की संरचना का वर्णन और वैलिडेशन करने की शब्दावली (टाइप, आवश्यक प्रॉपर्टी, फ़ॉर्मेट)।
- RFC 9110: HTTP SemanticsHTTP मेथड, हेडर फ़ील्ड, स्टेटस कोड और कंटेंट निगोशिएशन के अर्थ, वायर वर्ज़न से स्वतंत्र।