मैं सर्वर साइड वेब विकास के लिए नया हूं और हाल ही में मैं रीस्टफुल एपीआई को लागू करने के बारे में बहुत कुछ पढ़ रहा हूं। आरईएसटी एपीआई का एक पहलू यह है कि मैं अभी भी अटक गया हूं कि यूआरआई पदानुक्रम की संरचना के बारे में कैसे जाना है, जो संसाधनों की पहचान करता है जो ग्राहक बातचीत कर सकते हैं। विशेष रूप से मैं यह तय करने पर अटक गया हूं कि पदानुक्रम बनाने और अन्य संसाधन प्रकारों से बना संसाधनों के मामले में क्या करना है।आरईएसटी संसाधन पदानुक्रम की संरचना कैसे करें?
यहां एक उदाहरण है जो उम्मीद है कि मेरा मतलब क्या होगा। कल्पना कीजिए कि हमारे पास एक वेब सेवा है जो उपयोगकर्ताओं को अन्य उपयोगकर्ताओं से उत्पादों को खरीदने देती है। तो इस साधारण मामले में, दो शीर्ष स्तर के संसाधन उपयोगकर्ता और उत्पाद हैं।
/users
/{id}
/location
/about
/name
/seller_rating
/bought
/sold
उत्पादों के लिए: यहाँ कैसे मैं यूआरआई पदानुक्रम,
उपयोगकर्ताओं के लिए की संरचना करने के लिए शुरू किया है
/products
/{id}
/name
/category
/description
/keywords
/buyer
/seller
इन दोनों मामलों में प्रत्येक पदानुक्रम संदर्भ सबसेट में वस्तुओं अन्य पदानुक्रम में वस्तुओं का। उदाहरण के लिए /users/{id}/bought
उन उत्पादों की एक सूची है जो कुछ उपयोगकर्ता ने खरीदी हैं, जो /products
का सबसेट है। इसके अलावा, /products/{id}/seller
उस उपयोगकर्ता को संदर्भित करता है जिसने एक विशिष्ट उत्पाद बेचा है।
चूंकि इन यूआरआई के संदर्भ अन्य ऑब्जेक्ट्स, या अन्य ऑब्जेक्ट्स के सबसेट्स, एपीआई को इस तरह की चीजों को समर्थन देना चाहिए: /users/{id}/bought/id/description
और /products/{id}/buyer/location
? क्योंकि अगर उन प्रकार के यूआरआई समर्थित हैं, तो इस /users/{id}/bought/{id}/buyer/bought/{id}/seller/name
जैसे कुछ को रोकने के लिए क्या है, या कुछ समान रूप से घुलनशील है? इसके अलावा, इस मामले में, आप रूटिंग को कैसे संभालेंगे क्योंकि सर्वर में राउटर को यूआरआई की मनमानी लंबाई की व्याख्या करना होगा?
तो, क्या तुम कह रहे हो सिस्टम में हर संसाधन बिल्कुल ** एक है कि ** यूआरआई? क्योंकि इससे सब कुछ आसान हो जाता है। उपर्युक्त उदाहरण में, अगर आप एपीआई के माध्यम से कुछ उत्पाद के विक्रेता का पर्दाफाश करना चाहते हैं तो आप क्या सलाह देंगे (उत्पादों में केवल एक विक्रेता है)? क्या मुझे सिर्फ लोगों को * GET/Products/{id} * करना चाहिए जो विक्रेता में कुछ JSON ऑब्जेक्ट वापस कर देगा? – martega
'/ products/{id} 'के लिए JSON में आपकी सुविधा या यूआरएल के लिए नेस्टेड उपयोगकर्ता ऑब्जेक्ट हो सकता है, यह आपकी पसंद है और यह इस तथ्य को नहीं बदलेगा कि दोनों अलग-अलग मौजूद हैं। – Anri
बीटीडब्ल्यू, यह अन्य सेवाओं के एपीआई को देखने में मदद करता है। उदाहरण के लिए: https://developer.foursquare.com/docs/venues/venues – Anri