PUTRails アプリケーションでリクエストを使用しています。現在、新しい HTTP 動詞PATCHがブラウザーによって実装されています。PATCHしたがって、とPUTrequestsの主な違いは何か、またいつどちらを使用する必要があるかを知りたいです。
10 に答える
私はグーグルで数時間を過ごし、ここで答えを見つけました
PUT => ユーザーがレコードのすべてまたは一部のみを更新できる場合は、 PUT を使用します (更新対象をユーザーが制御します)
PUT /users/123/email
new.email@example.org
PATCH => ユーザーが部分的なレコードしか更新できない場合、たとえば電子メール アドレスのみを更新する場合 (アプリケーションが更新できるものを制御します)、PATCH を使用します。
PATCH /users/123
[description of changes]
どうしてPatch
PUTメソッドは、部分的にではなく、より多くの帯域幅を必要とするか、完全なリソースを処理します。そのPATCHため、帯域幅を削減するために導入されました。
PATCHについての説明
PATCH安全でも冪等でもないメソッドであり、完全または部分的な更新と他のリソースへの副作用を可能にします。
PATCHエンティティに囲まれたメソッドで、現在オリジン サーバーに存在するリソースを変更して新しいバージョンを生成する方法を説明する一連の命令が含まれています。
PATCH /users/123
[
{ "op": "replace", "path": "/email", "value": "new.email@example.org" }
]
put と patch の詳細はこちら
HTTP プロトコルの POST、PUT、PATCH メソッドの違いは次のとおりです。
役職
HTTP.POST メソッドは、常にサーバー上に新しいリソースを作成します。これは冪等でないリクエストです。つまり、ユーザーが同じリクエストを 2 回ヒットすると、制約がなければ別の新しいリソースが作成されます。
http post メソッドは、常にデータベースに新しいレコードを作成する SQL の INSERT クエリに似ています。
例: POST メソッドを使用して、バックエンド サーバーが新しいリソースのリソース ID を決定する新しいユーザー、注文などを保存します。
置く
HTTP.PUT メソッドでは、最初にリソースが URL から識別され、存在する場合は更新され、存在しない場合は新しいリソースが作成されます。ターゲット リソースが存在する場合、そのリソースは完全に新しい本体で上書きされます。つまり、HTTP.PUT メソッドを使用してリソースを作成または更新します。
http put メソッドは、指定されたレコードが存在するかどうかに応じてレコードを挿入または更新する SQL の MERGE クエリに似ています。
PUT リクエストはべき等です。つまり、同じリクエストを 2 回ヒットすると、既存の記録が更新されます (新しいレコードは作成されません)。PUT メソッドでは、リソース ID はクライアントによって決定され、リクエスト URL で提供されます。
例: PUT メソッドを使用して、既存のユーザーまたは注文を更新します。
パッチ
HTTP.PATCH メソッドは、リソースの部分的な変更、つまりデルタ更新に使用されます。
http パッチ メソッドは、行全体ではなく、選択した列のみを設定または更新する SQL の UPDATE クエリに似ています。
例: PATCH メソッドを使用して注文ステータスを更新できます。
パッチ /api/users/40450236/order/10234557
リクエスト本文: {status: 'Delivered'}