HTTP अनुरोध के हिस्से क्या हैं?
HTTP अनुरोध एक मेथड (GET, POST, PUT, PATCH, DELETE …) और लक्ष्य URL — पाथ और क्वेरी पैरामीटर — है, जिसके बाद हेडर और, डेटा ले जाने वाले मेथड के लिए, एक बॉडी होती है जिसका फ़ॉर्मेट Content-Type हेडर बताता है। RFC 9110 मेथड और उनके अर्थ परिभाषित करता है: GET और HEAD सुरक्षित हैं, PUT और DELETE आइडेम्पोटेंट, POST न यह न वह — और यही तय करता है कि अनुरोध दोबारा भेजा जा सकता है या नहीं। cURL कमांड लाइन वही अनुरोध लिखा हुआ रूप है, और बग रिपोर्ट में API कॉल दोहराने की साझा भाषा है।
गाइड पढ़ें: API टेस्टिंग क्या है? REST API कैसे टेस्ट करें
API क्वेरी पैरामीटर बिल्डर कैसे इस्तेमाल करें
- endpoint का URL डालें।
- पैरामीटर जोड़ें; सूचियों के लिए "a, b" या ["a","b"] और nested फ़िल्टर के लिए bracket key इस्तेमाल करें।
- अपने बैकएंड के मुताबिक़ array स्टाइल और एन्कोडिंग चुनें।
- अंतिम URL या सिर्फ़ क्वेरी स्ट्रिंग कॉपी करें।
API क्वेरी पैरामीटर बिल्डर की खूबियाँ
- key/value एडिटर — सरणियों तथा nested फ़िल्टर के लिए कॉमा सूची और JSON वैल्यू के साथ
- bracket key (filter[price][max]) और JSON ऑब्जेक्ट nested संरचना बनाते हैं
- चार array स्टाइल (repeat, brackets, indices, comma) और RFC 3986 या form एन्कोडिंग
- वैकल्पिक key सॉर्टिंग, ख़ाली वैल्यू छोड़ना और बेस URL की मौजूदा क्वेरी के साथ मर्ज करना
- लाइव अंतिम URL, सिर्फ़ क्वेरी स्ट्रिंग, एन्कोडेड पैरामीटर की तालिका और JSON व्यू
- बहुत लंबे URL और key में स्पेस होने पर चेतावनियाँ
API क्वेरी पैरामीटर बिल्डर का उदाहरण
pagination, sorting और सूची वाला फ़िल्टर
इनपुट:
Base: https://api.example.com/v1/products · page=2 · per_page=25 · sort=-created_at · status=active, pending · q=café & crèmeआउटपुट:
https://api.example.com/v1/products?page=2&per_page=25&sort=-created_at&status=active&status=pending&q=caf%C3%A9%20%26%20cr%C3%A8meAPI क्वेरी पैरामीटर बिल्डर के बारे में अक्सर पूछे जाने वाले सवाल
वैल्यू की सूची कैसे भेजूँ?
उन्हें कॉमा से अलग करके लिखें (active, pending) या JSON सरणी के रूप में (["a","b"])। फिर वही array स्टाइल चुनें जो आपका API चाहता है: repeat (status=a&status=b), brackets (status[]=a), indices (status[0]=a) या comma (status=a,b)।
nested फ़िल्टर कैसे बनाऊँ?
filter[price][max] जैसी bracket key या वैल्यू के रूप में JSON ऑब्जेक्ट इस्तेमाल करें। ये percent-encoded bracket के साथ serialise होते हैं (filter%5Bprice%5D%5Bmax%5D=…), जिन्हें PHP, Rails, Laravel और Express (qs) nested संरचना में डिकोड कर लेते हैं।
कौन-से कैरेक्टर एन्कोड होते हैं?
unreserved सेट (अक्षर, अंक, - _ . ~) से बाहर का सब कुछ RFC 3986 के अनुसार percent-encode होता है, जिसमें & = # + और ग़ैर-ASCII कैरेक्टर (UTF-8 बाइट) शामिल हैं। form एन्कोडिंग स्पेस को + में भी बदल देती है।
बेस URL में पहले से मौजूद क्वेरी स्ट्रिंग का क्या होता है?
"Keep existing query" चालू हो तो मौजूदा पैरामीटर पार्स करके आपके जोड़े गए पैरामीटर के साथ मर्ज कर दिए जाते हैं; एक ही key की नई वैल्यू दोहराव के रूप में जुड़ जाती हैं।
संदर्भ
- RFC 9110: HTTP SemanticsHTTP मेथड, हेडर फ़ील्ड, स्टेटस कोड और कंटेंट निगोशिएशन के अर्थ, वायर वर्ज़न से स्वतंत्र।
- HTTP headers — MDNरिक्वेस्ट और रिस्पॉन्स हेडर का संदर्भ: सिंटैक्स, डायरेक्टिव और ब्राउज़र सपोर्ट।
- RFC 7578: Returning Values from Forms: multipart/form-dataफ़ाइल अपलोड और मिश्रित फ़ॉर्म सबमिशन के लिए इस्तेमाल होने वाली multipart/form-data एन्कोडिंग।