web-dev-qa-db-ja.com

PUTの違いは何ですか、 POST とパッチ?

HTTPプロトコルにおけるPUT、POST、およびPATCHメソッドの違いは何ですか?

181
selva kumar

POST

HTTP.POSTは、クライアントがサーバーにデータを送信しているときに使用でき、サーバーは新しく作成されたリソースのURIを決定します。 POSTメソッドは、Originサーバがリクエストに囲まれたエンティティをリクエスト行のRequest-URIで識別されるリソースの新しい下位として受け入れることを要求するために使用されます。

プット

HTTP.PUTは、クライアントがサーバーにデータを送信していて、クライアントが新しく作成されたリソースのURIを決定しているときに使用できます。 PUTメソッドは、囲まれたエンティティを提供されたRequest-URIの下に格納することを要求します。 Request-URIが既に存在するリソースを参照する場合、囲まれたエンティティはOriginサーバにあるものの修正版と見なされるべきである(SHOULD)。 Request-URIが既存のリソースを指しておらず、そのURIが要求元のユーザーエージェントによって新しいリソースとして定義されることができる場合、OriginサーバはそのURIを使ってリソースを作成できます。

PATCH

HTTP.PATCHは、クライアントがサーバーによって適用される1つ以上の変更を送信しているときに使用できます。 PATCHメソッドは、要求エンティティに記述されている一連の変更をRequest-URIで識別されるリソースに適用することを要求します。一連の変更は、パッチドキュメントと呼ばれる形式で表されます。

詳細については、下記のURLを参照してください。

POSTのPUT vs. REST

172
Litisqe Kumar

HTTP動詞におけるPUT、POST、GET、DELETE、およびPATCHの違い:

最も一般的に使用されているHTTP動詞POST、GET、PUT、DELETEは、データベース内のCRUD(作成、読み取り、更新、削除)操作に似ています。これらのHTTP動詞は capital の場合に指定します。それで、以下はそれらの間の比較です。

  1. 作成 - POST
  2. 読む - GET
  3. 更新 - PUT
  4. 削除 - 削除

PATCH: リソースに部分的な変更を加えます。リソースのフィールドを1つだけ更新する必要がある場合は、PATCHメソッドを使用することをお勧めします。

注:
POST、PUT、DELETEは内容を変更するため、以下のURLを入力するテスト担当者によるテストでは、更新をまねています。実際には削除も変更もされません。ステータスコードを見れば、挿入、更新、削除が発生したかどうかを確認できます。

URL: http://jsonplaceholder.typicode.com/posts/

1) GET:

GETは最も単純なタイプのHTTPリクエストメソッドです。リンクをクリックするか、アドレスバーにURLを入力するたびにブラウザが使用するもの。 URLによって識別されたデータをクライアントに送信するようにサーバーに指示します。 GET要求の結果としてデータがサーバー側で変更されることはありません。この意味で、GETリクエストは読み取り専用です。

FiddlerまたはPostManを使ったチェック: レスポンスをチェックするためにfiddlerを使うことができます。フィドラーを開き、[作成]タブを選択します。次のように動詞とURLを指定し、「実行」をクリックして応答を確認します。

動詞: GET

url: http://jsonplaceholder.typicode.com/posts/

回答: 回答は次のようになります。

"userId":1、 "id":1、 "タイトル": "sunt aut ..."、 "ボディ": "quia et suscipit ..."

"幸せな"(またはエラーではない)パスでは、GETはXMLまたはJSONの表現と200(OK)のHTTP応答コードを返します。エラーの場合、ほとんどの場合404(NOT FOUND)または400(BAD REQUEST)を返します。

2)POST:

POST動詞は、 create newリソースに主に使用されます。特に、それは従属リソースを作成するために使用されます。つまり、他の(たとえば親)リソースに従属します。

正常に作成された場合は、HTTPステータス201を返し、201 HTTPステータスを持つ新しく作成されたリソースへのリンクを含むLocationヘッダを返します。

FiddlerまたはPostManを使ったチェック: レスポンスをチェックするためにfiddlerを使うことができます。フィドラーを開き、[作成]タブを選択します。次のように動詞とURLを指定し、「実行」をクリックして応答を確認します。

動詞: POST

url: http://jsonplaceholder.typicode.com/posts/

リクエストボディ:

データ:{タイトル: 'foo'、本文: 'bar'、ユーザーID:1000、ID:1000}

レスポンス: レスポンスコード201として受け取るでしょう。

挿入されたレコードをId = 1000で確認したい場合は、動詞をGetに変更し、同じURLを使用して[実行]をクリックします。

前述のように、上記のURLは読み取り(GET)しか許可していません。更新されたデータを実際に読み取ることはできません。

3)PUT:

PUTは、 update capabilitiesに最もよく利用されています。リクエストボディには、オリジナルのリソースの新しく更新された表現が含まれています。

FiddlerまたはPostManを使ったチェック: レスポンスをチェックするためにfiddlerを使うことができます。フィドラーを開き、[作成]タブを選択します。次のように動詞とURLを指定し、「実行」をクリックして応答を確認します。

動詞: PUT

url: http://jsonplaceholder.typicode.com/posts/1

リクエストボディ:

データ:{タイトル: 'foo'、本文: 'bar'、ユーザーID:1、ID:1}

応答: 更新に成功するとPUTから200を返します(本文の内容が返されない場合は204)。

4)DELETE:

DELETEは理解するのがとても簡単です。これは delete URIで識別されるリソースに使用されます。

正常に削除された場合は、レスポンスの本文、おそらく削除されたアイテムの表現(多くの場合、帯域幅が多すぎることが多い)、またはラップされたレスポンスと共にHTTPステータス200(OK)を返します(後述の戻り値を参照)。それか、レスポンスボディなしでHTTPステータス204(NO CONTENT)を返します。つまり、本文なしの204ステータス、またはJSENDスタイルのレスポンスとHTTPステータス200が推奨されるレスポンスです。

FiddlerまたはPostManを使ったチェック: レスポンスをチェックするためにfiddlerを使うことができます。フィドラーを開き、[作成]タブを選択します。次のように動詞とURLを指定し、「実行」をクリックして応答を確認します。

動詞: DELETE

url: http://jsonplaceholder.typicode.com/posts/1

応答: 正常に削除されると、応答本文と共にHTTPステータス200(OK)を返します。

PUTとPATCHの間の例

_ put _

私のファーストネームを変更しなければならない場合は、UpdateのPUTリクエストを送信します。

{"first": "Nazmul"、 "last": "hasan"}それで、ここでファーストネームを更新するために、データのすべてのパラメータを再度送信する必要があります。

PATCH:

パッチリクエストでは、データの他の部分を変更したり影響を与えたりすることなく、変更する必要があるデータのみを送信するとしています。例:名だけを更新する必要がある場合は、名だけを渡します。

詳細については、以下のリンクを参照してください。

https://jsonplaceholder.typicode.com/ /

https://github.com/typicode/jsonplaceholder#how-to

PATCHリクエストとPUTリクエストの主な違いは何ですか?

http://www.restapitutorial.com/lessons/httpmethods.html

138
Krishna

PUT = ENTIRE RESOURCEを提供された新しい表現で置き換えます。

PATCH =ソースリソースの一部を提供された値で置換するANDまたはリソースの他の部分が提供されていない場合に更新される(タイムスタンプ)AND | ORリソースの更新が他のリソースに与える影響(関係)

https://laracasts.com/discuss/channels/general-discussion/whats-the-differences-between-put-and-patch?page=1

32
Ankit Rai

要求タイプ

  • 作成 - POST
  • 読む - GET
  • 作成または更新 - PUT
  • 削除 - 削除
  • 更新 - パッチ

GET/PUTはべき乗であるPATCHはときにはべき等べきです

べき乗とは何ですか?クエリを複数回実行しても結果が悪くならないことを意味します(同じ出力。牛が妊娠している場合、また繁殖した場合は複数回出現することはできません)

get: -

簡単に入手。サーバーからデータを取得してユーザーに表示する

{
id:1
name:parth
email:[email protected]
}

post: -

データベースに新しいリソースを作成します。それはそれが新しいデータを追加することを意味します。それはべき乗ではありません。

put: -

そうでなければ既存に追加する新しいリソースを作成します。それは毎回同じリソースを更新し、出力は同じになるので、べき等です。 - 初期データ

{
id:1
name:parth
email:[email protected]
}
{
id:1
email:[email protected]
}

patch

だから今パッチ要求パッチが来たパッチは時々冪等であることができます

id:1
name:parth
email:[email protected]
}

パッチ名:w

{
id:1
name:w
email:[email protected]
}
 HTTPメソッド
 GETはい
 POSTいいえ
 PUTはい[
] PATCHいいえ* [
]オプションはい
 HEADはい
 DELETE yes 

リソース:べき等 - べき等性とは何ですか?

4
Parth Patel

以下の定義は現実世界の例からのものです。

例の概要
すべてのクライアントデータについて、そのクライアントデータを見つけるための識別子を格納しており、参照のためにそのクライアントにその識別子を送り返します。

  1. 役職

    • クライアントがPOSTメソッドを使用して識別子なしでデータを送信する場合は、それを保存して新しい識別子を割り当てます。
    • POSTメソッドを使用して、クライアントが識別子なしで same dataを再度送信する場合は、それを保存して新しい識別子を割り当てます。
    • :ここで複製が許可されています
  2. _ put _

    • クライアントが識別子付きのデータを送信した場合は、その識別子が存在するかどうかを確認します。識別子が存在する場合はデータを更新し、それ以外の場合はデータを作成して新しい識別子を割り当てます。
  3. _パッチ_

    • クライアントが識別子付きのデータを送信した場合は、その識別子が存在するかどうかを確認します。識別子が存在すればデータを更新し、そうでなければ例外を投げます。

注: Put Methodでは、識別子が見つからない場合でも例外をスローしません。しかし、 Patch methodでは、識別子が見つからない場合は例外をスローします。

上記について何かご質問がありましたら教えてください。

1
Yokesh Waran

PUTPATCHリクエストの主な違い:

個人の名と姓を保持するリソースがあるとします。

名を変更したい場合は、更新のプットリクエストを送信します

{ "first": "Michael", "last": "Angelo" }

ここでは、名だけを変更していますが、PUT要求では、最初と最後の両方のパラメーターを送信する必要があります。
つまり、すべての値、つまり完全なペイロードを再度送信することが必須です。

ただし、PATCH要求を送信するときは、更新するデータのみを送信します。つまり、更新するのは名のみを送信し、姓を送信する必要はありません。

1
beginners