API कॉन्ट्रैक्ट टेस्टिंग क्या है?
API कॉन्ट्रैक्ट किसी इंटरफ़ेस का सहमत विवरण है — उसके एंडपॉइंट, पैरामीटर, रिक्वेस्ट व रिस्पॉन्स स्कीमा और स्टेटस कोड — जो आमतौर पर OpenAPI दस्तावेज़ के रूप में लिखा जाता है। कॉन्ट्रैक्ट टेस्टिंग सर्विस के वास्तविक रिस्पॉन्स की उस विवरण से तुलना करती है, ताकि बदला हुआ फ़ील्ड नाम या टाइप दूसरी तरफ़ को तोड़ने से पहले प्रोड्यूसर या कंज़्यूमर के पास पकड़ा जाए।
गाइड पढ़ें: API टेस्टिंग क्या है? REST API कैसे टेस्ट करें
OpenAPI व्यूअर कैसे इस्तेमाल करें
- स्पेसिफ़िकेशन पेस्ट करें या "Load example" पर क्लिक करें।
- Render दबाएँ (या Ctrl/Cmd+Enter)।
- फ़िल्टर से endpoint ढूँढें और उसके पैरामीटर तथा रिस्पॉन्स पढ़ने के लिए उसे खोलें।
OpenAPI व्यूअर की खूबियाँ
- OpenAPI 3.0/3.1 और Swagger 2.0, JSON या YAML — सब कुछ ब्राउज़र में ही पार्स होता है
- ऑपरेशन tag के हिसाब से समूहित — मेथड बैज, path, सारांश, deprecation और auth चिह्नों के साथ
- खुलने वाला विवरण: पैरामीटर, रिक्वेस्ट बॉडी, स्टेटस कोड के अनुसार रिस्पॉन्स, security और कॉपी बटन
- प्रॉपर्टी तालिका तथा कच्चे JSON के साथ स्कीमा, security scheme और servers
- मेथड, path, operationId, tag और स्कीमा नामों पर तुरंत फ़िल्टर; सब खोलें/बंद करें
- संरचना की समस्याएँ चेतावनी बैनर में दिखती हैं, व्यू रोके बिना
OpenAPI व्यूअर का उदाहरण
एक छोटे API को देखना
इनपुट:
openapi: 3.0.3
paths:
/books:
get:
summary: List books
responses:
"200": { description: OK }आउटपुट:
default (1)
GET /books — List books
Responses: 200 OKOpenAPI व्यूअर के बारे में अक्सर पूछे जाने वाले सवाल
मैं कौन-से फ़ॉर्मैट पेस्ट कर सकता हूँ?
OpenAPI 3.0 और 3.1 के साथ-साथ Swagger 2.0, JSON या YAML में। वर्शन openapi / swagger फ़ील्ड से पहचाना जाता है।
ऑपरेशन किस तरह व्यवस्थित होते हैं?
tag के हिसाब से, उसी क्रम में जिसमें tag घोषित हुए हैं; बिना tag वाले ऑपरेशन "default" के नीचे आते हैं। हर ऑपरेशन खोलने पर पैरामीटर (नाम, जगह, टाइप, ज़रूरी या नहीं), कंटेंट टाइप तथा स्कीमा सहित रिक्वेस्ट बॉडी, स्टेटस कोड के अनुसार रिस्पॉन्स और security ज़रूरतें दिखती हैं।
क्या $ref संदर्भ हल किए जाते हैं?
लोकल संदर्भ (#/components/schemas/Name, #/definitions/Name) नाम से दिखाए जाते हैं और स्कीमा सेक्शन में हर कंपोनेंट अपनी प्रॉपर्टी तथा कच्चे JSON के साथ सूचीबद्ध रहता है। दूसरी फ़ाइलों के संदर्भ ज्यों के त्यों दिखा दिए जाते हैं।
क्या बड़े स्पेसिफ़िकेशन के अंदर खोज सकते हैं?
हाँ। फ़िल्टर बॉक्स मेथड, path, सारांश, operationId, tag और स्कीमा नामों से मिलान करता है। हर सेक्शन खोलने या बंद करने के लिए Expand all / Collapse all इस्तेमाल करें।
तकनीकी नोट्स
व्यूअर एक सामान्यीकृत मॉडल बनाता है जो वैलिडेटर के साथ साझा होता है: tags → operations → parameters/requestBody/responses और components → schemas। लोकल $ref पॉइंटर JSON Pointer से हल किए जाते हैं; स्कीमा के लेबल संक्षेप में लिखे जाते हैं (array<Book>, string(uuid), enum(a, b)) ताकि तालिकाएँ पढ़ने लायक़ बनी रहें।
संदर्भ
- OpenAPI SpecificationREST API के वर्णन का मानक: पाथ, ऑपरेशन, पैरामीटर, स्कीमा, रिस्पॉन्स और सिक्योरिटी स्कीम।
- JSON Schema SpecificationJSON दस्तावेज़ की संरचना का वर्णन और वैलिडेशन करने की शब्दावली (टाइप, आवश्यक प्रॉपर्टी, फ़ॉर्मेट)।
- RFC 9110: HTTP SemanticsHTTP मेथड, हेडर फ़ील्ड, स्टेटस कोड और कंटेंट निगोशिएशन के अर्थ, वायर वर्ज़न से स्वतंत्र।