11
RESTfulサービスでの部分更新のベストプラクティス
私は顧客管理システム用のRESTfulサービスを作成しており、レコードを部分的に更新するためのベストプラクティスを見つけようとしています。たとえば、呼び出し元がGETリクエストでレコード全体を読み取れるようにしたいとします。ただし、更新の場合、ステータスをENABLEDからDISABLEDに変更するなど、レコードに対する特定の操作のみが許可されます。(これよりも複雑なシナリオがあります) セキュリティ上の理由から、更新されたフィールドのみを含むレコード全体を発信者に送信してほしくありません(また、やり過ぎのように感じます)。 URIを構築するための推奨される方法はありますか?RESTブックを読むとき、RPCスタイルの呼び出しは不快に思われます。 次の呼び出しがID 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 APIに組み込むにはどうすればよいですか?これを行うための合意された方法はありますか?すべてのメソッドが本質的にCRUDであるとは限りません。いくつかは'のような、より複雑なsendEmailToCustomer(123) '、 ' mergeCustomers(123、456) '、 ' countCustomers() ' POST /customer/123?cmd=sendEmail POST /cmd/sendEmail?customerId=123 GET /customer/count
208
rest