আমি একটি গ্রাহক পরিচালন সিস্টেমের জন্য একটি রেস্টস্টুল সার্ভিস লিখছি এবং আমি আংশিকভাবে রেকর্ডগুলি আপডেট করার জন্য সেরা অনুশীলনটি অনুসন্ধান করার চেষ্টা করছি। উদাহরণস্বরূপ, আমি চাই যে কলার একটি জিইটি অনুরোধের সাথে পুরো রেকর্ডটি পড়তে সক্ষম হবে। তবে এটি আপডেট করার জন্য কেবলমাত্র রেকর্ডে কিছু নির্দিষ্ট ক্রিয়াকলাপ অনুমোদিত, যেমন স্থিতিটি সক্ষম করা থেকে অক্ষম করুন। (এর চেয়ে আমার আরও জটিল পরিস্থিতি রয়েছে)
আমি চাই না যে কলার সুরক্ষার কারণে আপডেট হওয়া ক্ষেত্রটি দিয়ে পুরো রেকর্ডটি জমা দিন (এটি অতিরিক্ত ওভারকিলের মতো মনে হয়)।
ইউআরআইগুলি তৈরির জন্য কি কোনও প্রস্তাবিত উপায় আছে? আরআরএসটি বই পড়ার সময় আরপিসির স্টাইলের কলগুলি মনে হচ্ছে না।
নিম্নলিখিত কলটি যদি 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
...
আপডেট : প্রশ্ন বৃদ্ধি করতে। কীভাবে একজন 'রিজাস্ট এপিআই'তে' বিজনেস লজিক কল 'অন্তর্ভুক্ত করে? এটি করার কোনও সম্মত উপায় আছে কি? সমস্ত পদ্ধতি প্রকৃতি অনুসারে সিআরইউডি হয় না। কিছুগুলি আরও জটিল, যেমন ' সেন্ডইমেইলটোস্টাস্টার (123) ', ' মার্জকাস্টমার্স (123, 456) ', ' কাউন্টকাস্টমার্স () '
POST /customer/123?cmd=sendEmail
POST /cmd/sendEmail?customerId=123
GET /customer/count
POST
রয় ফিল্ডিং নিজেই একটি পোস্ট এখানে দিয়েছেন: roy.gbiv.com/untangled/2009/it-is-okay-to-use- পোষ্ট যেখানে বেসিক ধারণাটি রয়েছে: যদি সেখানে না হয় 'একটি পদ্ধতি (যেমন tGET
বাPUT
) আদর্শভাবে আপনার অপারেশন ব্যবহারের উপযুক্তPOST
।