मैं ग्राहक प्रबंधन प्रणाली के लिए एक RESTful सेवा लिख रहा हूं और मैं आंशिक रूप से रिकॉर्ड अपडेट करने के लिए सर्वोत्तम अभ्यास खोजने की कोशिश कर रहा हूं। उदाहरण के लिए, मैं चाहता हूं कि कॉलर जीईटी अनुरोध के साथ पूरा रिकॉर्ड पढ़ने में सक्षम हो। लेकिन इसे अपडेट करने के लिए केवल रिकॉर्ड पर कुछ संचालन की अनुमति है, जैसे ENABLED से DISABLED में स्थिति बदलना। (मेरे पास इससे अधिक जटिल परिदृश्य हैं)
मैं नहीं चाहता कि कॉलर सुरक्षा कारणों से अपडेट किए गए फ़ील्ड के साथ पूरे रिकॉर्ड को प्रस्तुत करे (यह भी ओवरकिल जैसा लगता है)।
क्या यूआरआई के निर्माण का अनुशंसित तरीका है? जब REST पुस्तकें पढ़ रहे हों तो RPC स्टाइल कॉल फेक लगती हैं।
अगर निम्नलिखित कॉल आईडी 123 के साथ ग्राहक के लिए पूर्ण ग्राहक रिकॉर्ड लौटाता है
GET /customer/123
<customer>
{lots of attributes}
<status>ENABLED</status>
{even more attributes}
</customer>
मुझे स्थिति कैसे अपडेट करनी चाहिए?
POST /customer/123/status
<status>DISABLED</status>
POST /customer/123/changeStatus
DISABLED
...
अपडेट : प्रश्न को बढ़ाने के लिए। REST एपीआई में कोई 'व्यावसायिक तर्क कॉल' कैसे शामिल करता है? क्या ऐसा करने का कोई सहमत तरीका है? सभी विधियां प्रकृति द्वारा CRUD नहीं हैं। कुछ और अधिक जटिल हैं, जैसे ' sendEmailToCustomer (123) ', ' mergeCustomers (123, 456) ', ' countCustomers () '
POST /customer/123?cmd=sendEmail
POST /cmd/sendEmail?customerId=123
GET /customer/count
POST
रॉय फील्डिंग से एक पोस्ट है : roy.gbiv.com/untangled/2009/it-is-okay-to-use-post जहां मूल विचार है: अगर कोई है एक विधि (जैसे किGET
या तोPUT
) आदर्श रूप से आपके ऑपरेशन उपयोग के लिए अनुकूल हैPOST
।