PUTとPOSTとも、HTTPプロトコルで使用されるリクエストのメソッドになります。それでは、PUTとPOSTとの違いはなんですか?本文では、PUTとPOSTといったHTTPメソッドを詳しく紹介した上、どのよう場合はPUTを使うのか、どのような場合はPOSTを使うのかということも詳しく紹介していきます。
こちらもお見逃しなく:
PUTとは
本文では、まずPUTメソッドを皆さんに紹介します。PUTメソッドはHTTPのリクエストメソッドの1つで、指定したURIの場所にリソースを作成または更新するために用いられます。
PUTメソッドの特徴
PUTメソッドは次のような特徴があります。
- リクエストURIがリソースの識別子として使われる
- リクエストBodyに更新後のリソースの全体が含まれる
- 冪等性(アイデンポテンシー)を持つ。同じリクエストを繰り返しても結果は同じ。
- 既存のリソースが存在しなければ、新規に作成される
- 既存のリソースが存在すれば、本文の内容で完全に置き換えられる
つまり、簡単に言うと、PUTメソッドは、実際にURIパスの場所に、リクエストで送信したBody内容をリソースとして保存する操作になります。RESTful APIでは、リソースの更新にPUTが使われることも多いです。
POSTとは
POSTメソッドはHTTPのリクエストメソッドの1つで、指定したURIに対してエンティティを送信するために用いられます。
POSTメソッドの特徴
- URIはリクエストを処理するリソースの場所を示す
- リクエスト本文に新規リソースのデータが含まれる
- 冪等性(アイデンポテンシー)を持たない。同じリクエストを繰り返すと異なる結果になる場合がある
- 新しいリソースを作成する場合が多い
- リクエスト本文が空でも有効な場合がある
つまり、簡単に言うと、POSTメソッドは、URIのリソースに対して、リクエストで送信したBody内容を適用するという操作になります。RESTful APIでは、新規リソースの作成にPOSTが使われることが多いです。
PUTとPOSTをサンプルで比較して説明
それでは、実際のリクエスト送信の時に、PUTとPOSTの使用例を一緒に見に行きましょう。
PUTの例:
PUT /users/1
{
"id": 1,
"name": "Ichiro",
"age": 22
}
これはユーザ1のレコードを送信した内容に置換するためリクエストです。
POSTの例:
POST /users
{
"name": "Saburo",
"age": 18
}
これは新規ユーザを作成するためのリクエストです。
上記のサンプルのように、PUTは既存リソースの全置換、POSTは新規リソースの作成に使われるのが一般的です。PUTリクエストの本文には、更新後のリソースの全データが含まれます。POSTの本文には、新規リソースに設定するデータのみが含まれます。
PUTとPOSTの違いを解説
それでは、PUTとPOSTメソッドの違いとはなんですか?次は様々な方面からその違いを詳しく解説します。
PUTとPOSTの相違点を例を用いて説明すると以下のようになります。
URIの意味
- PUT:
PUT /users/1
(URIがリソース(ユーザー1)を直接特定) - POST:
POST /users
(URIがリソースの処理(ユーザーを新規追加)を特定)
リクエスト本文の意味
- PUT: 本文がユーザ1について更新データ全体
- POST: 本文が新規ユーザの名前や年齢などのデータのみ
冪等性(アイデンポテンシー)
- PUT: 同じリクエストを繰り返しても結果は同じ
- POST: 同じリクエストでも異なる結果になる可能性がある
既存リソースの場合
- PUT: リソースの全データをREQUEST BODYで置き換える
- POST: リソースに対して部分的な更新を行う
新規リソースの場合
- PUT: 新規リソースを作成する
- POST: 新規リソースを作成する
リクエスト本文
- PUT: 本文が必須
- POST: 本文が必須ではない
このように、それぞれの特徴に応じた例で考えると理解が深まると思います。
Apidog:全てのHTTPメソッドにも全面的にご対応
上記の内容からPUTとPOSTの意味及びその利用シーンをよく理解できたと思います。それでは、無論PUTとPOSTのどちらかのメソッドを選択しても、Apidogという優れていたAPI管理ツールは役立つと思います。Apidogは、全てのHTTPメソッドにも全面的に対応できるので、HTTPリクエストを送信する時にも、Web APIを設計する時にも簡単に利用することができます。また、自分でAPIを開発する場合は、APIの設計だけではなく、APIの仕様書生成、テスト自動化、データモックなど、様々な機能もできます。
それでは、上記のボタンからApidogのオンラインバージョンを体験して、HTTPリクエスト送信時やAPIの設計時に様々なHTTPメソッドを利用しましょう。
Apidogでは、PUTやPOSTを含む様々なHTTPメソッドにも対応できます。どちらのWeb APIもHTTPプロトコルを使用していますので、目的別で、HTTPメソッドを選択する必要があります。HTTPメソッドといえば、常に下記のものがあります。
- GET(コンテンツを取得)
- POST(コンテンツを新規追加)
- PUT(既存コンテンツを変更)
- DELETE(コンテンツを削除)