Apidog

オールインワンのAPI開発プラットフォーム

API設計

API仕様書生成

API設計

API Mock

APIテスト自動化

無料登録
Home / ソリューション / 完全解説:1分間で分かるPUTとPOSTの違い

完全解説:1分間で分かるPUTとPOSTの違い

PUTとPOSTとも、HTTPプロトコルで使用されるリクエストのメソッドになります。それでは、PUTとPOSTとの違いはなんですか?本文では、PUTとPOSTといったHTTPメソッドを詳しく紹介した上、どのよう場合はPUTを使うのか、どのような場合はPOSTを使うのかということも詳しく紹介していきます。

PUTとPOSTとも、HTTPプロトコルで使用されるリクエストのメソッドになります。それでは、PUTとPOSTとの違いはなんですか?本文では、PUTとPOSTといったHTTPメソッドを詳しく紹介した上、どのよう場合はPUTを使うのか、どのような場合はPOSTを使うのかということも詳しく紹介していきます。

こちらもお見逃しなく:

GETとPOSTの違いは?わかりやすく解説するのはこちら!
APIを利用したり、設計したりする時に、GETとPOSTは非常によく使われるHTTPメソッドになります。それでは、GETと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の仕様書生成、テスト自動化、データモックなど、様々な機能もできます。

button

それでは、上記のボタンからApidogのオンラインバージョンを体験して、HTTPリクエスト送信時やAPIの設計時に様々なHTTPメソッドを利用しましょう。

Apidogでは、PUTやPOSTを含む様々なHTTPメソッドにも対応できます。どちらのWeb APIもHTTPプロトコルを使用していますので、目的別で、HTTPメソッドを選択する必要があります。HTTPメソッドといえば、常に下記のものがあります。

  • GET(コンテンツを取得)
  • POST(コンテンツを新規追加)
  • PUT(既存コンテンツを変更)
  • DELETE(コンテンツを削除)
Apidogで任意のAPIメソッドを設定可能
button

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。