0

レコードを更新するためのRESTメソッドがあるとしましょう。リソースを更新しているため、これは明らかにPOSTになります。ただし、同じ動きで、監査または改訂履歴テーブルに新しいレコードを作成する必要があります。

POSTとPUTのどちらを使用するかについて、ここに標準またはベストプラクティスがありますか?

RESTメソッドは、ユーザー側で発生していることから発生しますか、それともデータベースで発生していることから発生しますか?

1つの可能性は、1つのメソッドを呼び出すだけです。このメソッドは、あるテーブルのレコードを更新し、別のテーブルに新しいレコードを作成します。

もう1つの可能性は、POSTが1つのテーブルのみを更新するように強制することであり、監査テーブルでPUTを実行するための追加のメソッドが必要になります。これは2つの方法の使用を強制し、開発者に責任を負わせますが、私はあまり熱心ではありません。

4

1 に答える 1

2

PUT実際には、既存のレコードの置換 (更新) に推奨されます。

PUT メソッドは、囲まれたエンティティが指定された Request-URI の下に格納されることを要求します。Request-URI が既存のリソースを参照する場合、同封されたエンティティは、オリジン サーバーに存在するエンティティの修正版と見なされる必要があります。

と の違いに関する情報もありPOSTますPUT

POST 要求と PUT 要求の根本的な違いは、Request-URI の異なる意味に反映されています。POST 要求の URI は、含まれるエンティティを処理するリソースを識別します。そのリソースは、データを受け入れるプロセス、他のプロトコルへのゲートウェイ、または注釈を受け入れる別のエンティティである可能性があります。対照的に、PUT リクエストの URI は、リクエストに含まれるエンティティを識別します。ユーザー エージェントは、意図されている URI を認識しており、サーバーはリクエストを他のリソースに適用しようとしてはなりません。

ここを参照してください。

私には、PUTリクエストを使用してリソースを更新する必要があるように思えます。監査はそれを行うことの副作用であるためPUT、新しいリソースの設定の一部として処理する必要があります。

于 2012-03-02T02:00:19.500 に答える