डेवलपर यहां एक दोस्ताना हो रही है की एक संख्या है (कुछ कह सकते हैं कि धार्मिक) के बारे में RESTful API से एक GET अनुरोधअनुरोध किया गया संसाधन की आईडी वापसी करना चाहिए कि क्या चर्चा। के निम्नलिखित GET अनुरोध मान लेते हैं:क्या एक विश्वसनीय प्रतिक्रिया प्रतिक्रिया संसाधन की आईडी लौटा देनी चाहिए?
http://my.api.com/rest/users/23
यह वर्तमान में प्रस्तुत करती है:
{"name": "Jim", "age": 40, "favoriteColor": "blue"}
ध्यान दें कि "आईडी" परिणाम सेट से लापता है।
मूल रूप से 4 शिविर इस मुद्दे से जूझ रहे हैं।
सीएएमपी # 1: जब कॉलर्स जीईटी अनुरोध करते हैं, तो वे पहले से ही आईडी को जानते हैं। इसलिए, परिणाम सेट में आईडी शामिल होना चाहिए। यदि कॉलर्स को यूआई संपादन को सक्षम करने के लिए इस डेटा की आवश्यकता है, तो कॉलर्स को आईडी 23 से गुजरना होगा, शायद सदस्य {"आईडी": 23} मैन्युअल रूप से JSON में जोड़ना होगा।
कैंप # 1 में लोग भी तर्क देते हैं कि परिणाम सेट में आईडी की उपस्थिति से संकेत मिलेगा कि यह मान संशोधित किया जा सकता है, जो निश्चित रूप से नहीं हो सकता है।
सीएएमपी # 2: आईडी के बिना, जेएसओएन परिणाम सेट को यूआई रूपों में संपादन/अद्यतन संचालन के लिए मूल रूप से उपयोग नहीं किया जा सकता है। इसके बजाए, AJAX कॉलबैक तंत्र को आईडी फ़ील्ड को पास करने और परिणाम सेट में मैन्युअल रूप से जोड़ने के लिए ज़िम्मेदार होना आवश्यक है। यह klunky और त्रुटि प्रवण लगता है। यूआई लोग तर्क दे रहे हैं कि परिणाम "लगता है" जैसे गायब डेटा जैसा मौजूद होना चाहिए, अर्थात् आईडी।
कैंप # 3: ये लोग स्थिरता के बारे में चिंतित हैं। यदि हमारे पास कभी भी एपीआई द्वारा लौटाए गए उपयोगकर्ता ऑब्जेक्ट्स का संग्रह होता है, तो इन ऑब्जेक्ट्स में आईडी शामिल होना चाहिए। इसलिए, स्थिरता के लिए, जीईटी के सिंगलटन संस्करण में आईडी भी शामिल होना चाहिए।
कैंप # 4: ये लोग सुझाव दे रहे हैं कि उपयोगकर्ता के लिए जीईटी अनुरोध हाइपरमीडिया या सेल्फलिंक्स के रूप में मेटा डेटा लौटा सकता है जिसमें आईडी शामिल होगी।
यह एक गूढ़ नहीं है "कौन सही है?" तर्क, या तो। हमारे द्वारा उठाए जाने वाले दृष्टिकोण से हमारे एपीआई के आकार को निर्देशित किया जाएगा और नए कुछ हफ्तों में कई डेवलपर्स के काम के भार को प्रभावित किया जाएगा।
यह सिर्फ एक व्यक्तिगत राय है लेकिन मैं शिविर 2 और 3 के साथ सहमत हूं। मुझे लगता है कि प्रतिनिधित्व में सभी उपलब्ध डेटा, आईडी शामिल होना चाहिए। विशेष रूप से जब यह एक प्राकृतिक आईडी है। यह एक बहुत ही रोचक सवाल है लेकिन मुझे संदेह है कि आपको एक साधारण जवाब मिलेगा। – toniedzwiedz
ग्राहक के परिप्रेक्ष्य से, जीईटी * यू * आईडी में इस्तेमाल यूआरआई है। मैं कैंप 4 के लिए वोट दूंगा कि स्वयं लिंक में उपयोग की जाने वाली "आईडी" पूरी यूआरआई है, न केवल अंत में हिस्सा है। –
कैंप 4 में लोगों को यह देखने के लिए राहत मिलेगी कि वे अकेले नहीं हैं। और पुष्टि करने के लिए, यदि वे आईडी शामिल करना चाहते हैं, तो यह एक पूर्ण यूआरआई के अंदर एम्बेडेड होगा। इसका मतलब है कि आईडी निकालने के लिए यूआरआई को पार्स करना आवश्यक होगा, लेकिन कम से कम शिविर 2 लोगों के लिए उन्हें JSON पेलोड को मैन्युअल रूप से बंद करने की आवश्यकता नहीं है। फ्लिप पक्ष पर, कैंप 1 अनुयायी बहस कर रहे हैं कि ऐसा यूआरआई केवल आरईएसटी स्तर 3 का आंशिक कार्यान्वयन होगा, इसलिए इस कारण से उन्हें एम्बेडेड सेल्फलिंक्स पसंद नहीं हैं। –