हम एक नया REST API लॉन्च कर रहे हैं और मैं चाहता था कि हम सर्वोत्तम प्रथाओं पर कुछ सामुदायिक इनपुट के बारे में बताएं कि हमारे पास इनपुट पैरामीटर कैसे होने चाहिए:
अभी, हमारा API बहुत JSON-केंद्रित है (केवल JSON देता है)। चाहे हम XML को वापस करना चाहते हैं की बहस एक अलग मुद्दा है।
जैसा कि हमारा एपीआई आउटपुट JSON केंद्रित है, हम एक ऐसे रास्ते पर जा रहे हैं जहां हमारे इनपुट थोड़ा JSON केंद्रित हैं और मैं सोच रहा हूं कि कुछ के लिए सुविधाजनक हो सकता है लेकिन सामान्य रूप से अजीब।
उदाहरण के लिए, कुछ उत्पाद विवरण प्राप्त करने के लिए जहां एक बार में हमारे पास कई उत्पाद खींचे जा सकते हैं:
http://our.api.com/Product?id=["101404","7267261"]
क्या हमें इसे सरल बनाना चाहिए:
http://our.api.com/Product?id=101404,7267261
या JSON इनपुट काम कर रहा है? एक दर्द के और?
हम दोनों शैलियों को स्वीकार करना चाहते हैं, लेकिन क्या यह लचीलापन वास्तव में अधिक भ्रम और सिर दर्द (स्थिरता, प्रलेखन, आदि) का कारण बनता है?
एक अधिक जटिल मामला तब है जब हम अधिक जटिल जानकारी देना चाहते हैं। उदाहरण के लिए, यदि हम खोज पर कई फ़िल्टर की अनुमति देना चाहते हैं:
http://our.api.com/Search?term=pumas&filters={"productType":["Clothing","Bags"],"color":["Black","Red"]}
हम जरूरी नहीं कि इस तरह के अनुरोध नामों के रूप में फ़िल्टर प्रकार (जैसे उत्पाद टाइप और रंग) डालना चाहते हैं:
http://our.api.com/Search?term=pumas&productType=["Clothing","Bags"]&color=["Black","Red"]
क्योंकि हम सभी फ़िल्टर इनपुट को एक साथ समूहीकृत करना चाहते थे।
अंत में, क्या यह वास्तव में मायने रखता है? यह संभावना हो सकती है कि वहाँ बहुत सारे JSON बर्तन हैं कि इनपुट प्रकार सिर्फ इतना ही मायने नहीं रखता है।
मुझे पता है कि एपीआई के लिए AJAX कॉल करने वाले हमारे जावास्क्रिप्ट क्लाइंट अपने जीवन को आसान बनाने के लिए JSON इनपुट की सराहना कर सकते हैं।
[]
वाक्यविन्यास हमेशा समर्थित नहीं है (और इसके सामान्य होने के बावजूद भी, यूआरआई युक्ति का उल्लंघन हो सकता है)। कुछ HTTP सर्वर और प्रोग्रामिंग भाषाएं केवल नाम को दोहराना पसंद करेंगी (जैसेproductType=value1&productType=value2
)।