API कॉन्ट्रैक्ट वैलिडेटर

ब्राउज़र में चलता है वैलिडेशन

कोई OpenAPI स्पेक और एक नमूना इंटरैक्शन (रिक्वेस्ट URL, method, बॉडी तथा रिस्पॉन्स स्टेटस/बॉडी) पेस्ट करें और दोनों दिशाओं को कॉन्ट्रैक्ट के विरुद्ध जाँचें — हर उल्लंघन के विस्तृत ब्योरे के साथ।

गोपनीयता: यह टूल पूरी तरह आपके ब्राउज़र में चलता है। आपका इनपुट कभी आपके डिवाइस से बाहर नहीं जाता।
टूल लोड हो रहा है…

API कॉन्ट्रैक्ट वैलिडेटर कैसे इस्तेमाल करें

  1. OpenAPI या Swagger डॉक्युमेंट पेस्ट करें।
  2. रिक्वेस्ट डालें: method, URL या path (query string सहित), वैकल्पिक हेडर और बॉडी।
  3. रिस्पॉन्स स्टेटस डालें, और चाहें तो उसके हेडर व बॉडी भी।
  4. "Validate" दबाएँ और जाँच तालिका देखें — हर FAIL पंक्ति के नीचे उससे जुड़े उल्लंघन मिलेंगे।
  5. रिक्वेस्ट या कॉन्ट्रैक्ट ठीक करें और तब तक दोबारा चलाएँ जब तक दोनों दिशाएँ कॉन्ट्रैक्ट का पालन न करने लगें।

API कॉन्ट्रैक्ट वैलिडेटर की खूबियाँ

  • YAML या JSON में OpenAPI 3.0/3.1 और Swagger 2.0 कॉन्ट्रैक्ट, स्थानीय $ref रिज़ॉल्यूशन के साथ
  • पैरामीटर सहित path टेम्प्लेट का मिलान और server base-path अपने आप हटाना
  • रिक्वेस्ट की जाँच: method, ज़रूरी path/query/header/cookie पैरामीटर, पैरामीटर के type तथा enum, स्वीकार्य Content-Type, बॉडी स्कीमा
  • रिस्पॉन्स की जाँच: दस्तावेज़ में दर्ज स्टेटस (2XX wildcard और default सहित), घोषित हेडर, Content-Type तथा बॉडी स्कीमा
  • दिशा, जगह और संदेश सहित उल्लंघन तालिका; संभावित ग़लतियों के लिए चेतावनी तथा जानकारी वाली पंक्तियाँ
  • वही JSON Schema इंजन इस्तेमाल करता है जो JSON Schema Validator में है (format, nullable, composition)

API कॉन्ट्रैक्ट वैलिडेटर का उदाहरण

अमान्य आइटम और रिस्पॉन्स के साथ ऑर्डर बनाना

इनपुट:

POST https://api.example.com/v1/orders
X-Request-Id: not-a-uuid
{ "customerId": "cus_8f2a", "items": [{ "sku": "SKU-1", "qty": 0 }] }

201 → { "id": "42", "status": "confirmed", "total": 59.9, "createdAt": "2026-09-01T10:00:00Z" }

आउटपुट:

Conforms: No — 5 violations (2 request, 3 response)
request · header.X-Request-Id: Parameter "header.X-Request-Id": String is not a valid uuid.
request · body $.items[0].qty: Value must be ≥ 1. (minimum)
response · header.Location: Required response header "Location" is missing.
response · body $.id: Expected integer but got string. (type)
response · body $.status: Value must be one of: "pending", "paid", "shipped". (enum)

API कॉन्ट्रैक्ट वैलिडेटर के बारे में अक्सर पूछे जाने वाले सवाल

कौन-से स्पेक वर्शन समर्थित हैं?

OpenAPI 3.0 तथा 3.1 और Swagger 2.0, YAML या JSON में, और पैरामीटर, request body, रिस्पॉन्स तथा स्कीमा के लिए स्थानीय $ref रिज़ॉल्यूशन के साथ।

path का मिलान कैसे होता है?

रिक्वेस्ट URL (या path) का मिलान path टेम्प्लेट से किया जाता है, जिसमें पैरामीटर के मुक़ाबले literal सेगमेंट को प्राथमिकता मिलती है; server base path (servers[].url या basePath) अपने आप हटा दिए जाते हैं।

रिक्वेस्ट की तरफ़ क्या जाँचा जाता है?

method मौजूद है या नहीं, ज़रूरी path/query/header/cookie पैरामीटर उनके type तथा constraint की जाँच के साथ, स्वीकार्य Content-Type, और रिक्वेस्ट बॉडी उसकी स्कीमा के विरुद्ध।

रिस्पॉन्स की तरफ़ क्या जाँचा जाता है?

स्टेटस दस्तावेज़ में दर्ज है या नहीं (2XX wildcard और default सहित), घोषित रिस्पॉन्स हेडर, रिस्पॉन्स का Content-Type, और उस स्टेटस की स्कीमा के विरुद्ध बॉडी।

चेतावनी और जानकारी वाली पंक्तियों का क्या मतलब है?

अनुपालन सिर्फ़ "Violation" पंक्तियाँ ही तोड़ती हैं। चेतावनियाँ संभावित ग़लतियाँ बताती हैं (बिना दस्तावेज़ वाली बॉडी, छूटा हुआ Content-Type); जानकारी वाली पंक्तियाँ अतिरिक्त चीज़ें नोट करती हैं, जैसे बिना घोषित query पैरामीटर।

तकनीकी नोट्स

query, path और header की वैल्यू स्ट्रिंग के रूप में आती हैं, इसलिए स्कीमा जाँच से पहले वैलिडेटर उन्हें घोषित प्राथमिक type में बदल देता है (integer, number, boolean, और comma/pipe/space collection format से array)। query पैरामीटर में मौजूद ऑब्जेक्ट JSON की तरह पार्स किए जाते हैं।

Content type का मिलान पहले पूरी तरह होता है, फिर wildcard (application/*, */*) और structured-suffix परिवार से — इसलिए application/problem+json उस कॉन्ट्रैक्ट को संतुष्ट करता है जिसमें application/json दर्ज है। स्कीमा जाँच पूरे डॉक्युमेंट को $ref रूट मानकर चलती है, ताकि #/components/schemas और #/definitions के संदर्भ बिना कॉपी किए हल हो जाएँ।