के साथ कई आदेशों के साथ आरईएसटी एपीआई डिजाइन के बारे में मेरा कोई प्रश्न है। यहां एक साधारण (शायद बहुत आसान) एपीआई है:आरईएसटी एपीआई प्रति संसाधन
GET /ecommerce/order/123
POST /ecommerce/order (create a new order)
PUT /ecommerce/order/123 (update an existing order)
DELETE /ecommerce/order/123 (cancel order)
लेकिन क्या होगा यदि मैं चाहता हूं कि ग्राहक रद्द करने के आदेश का कारण दर्ज करें? मुझे एपीआई में पोस्ट डेटा भेजने की आवश्यकता होगी, लेकिन यह DELETE के साथ काम नहीं करेगा। इसके लिए इसे पूरा करने के लिए मुझे DELETE को PUT में बदलना होगा। मैं फिर अपडेट और रद्द करने के लिए दो अलग-अलग संसाधन पोस्ट करूंगा।
एक अन्य समाधान एपीआई बदलने के लिए होगा:
GET /ecommerce/order/123
POST /ecommerce/order/create (create a new order)
PUT /ecommerce/order/update/123 (update an existing order)
DELETE /ecommerce/order/cancel/123 (cancel order)
मुझे यकीन है कि जो सबसे अच्छा विकल्प है नहीं कर रहा हूँ।
एक और सामान्य सवाल है कि आरईएसटी एपीआई एक संसाधन के लिए एकाधिक कमांड कैसे संभालता है।
किसी भी इनपुट की सराहना की जाएगी! मैं जल्द ही अभ्यास में रीस्ट पढ़ रहा हूं लेकिन यह सवाल मुझ पर घूम रहा है।
मुझे यह जवाब पसंद है। संसाधन और डोमेन इकाइयां एक से एक नहीं हैं। –
मुझे वास्तव में कैनसेलर्ड ऑर्डर नाम पसंद नहीं है, तो बेहतर संसाधन नाम ऑर्डर कैनसेलेशन होगा या दूसरे शब्दों में, संसाधन के रूप में एक क्रिया को उजागर करेगा। रिवर्सिबल एक्शन के मामले में यह भी काफी अच्छा है क्योंकि आप "एक्शन" पर डिलीट का उपयोग कर सकते हैं। – Maxem
जब यह काफी फिट नहीं होता है, तो मुझे यह भी पसंद है कि यह टिप्पणी एक ही मुद्दे पर क्या है: http://programmers.stackexchange.com/a/270421/211215 – Almund