tanaka101

HTTPメソッド

GET, POST, PUT, DELETEの違いと使い分けを理解しよう

とは

は、サーバーに対して「どんな操作をしたいか」を伝えるものです。

同じURL /users でも、によって動作が変わります。

操作
GET取得するユーザー一覧を取得
POST作成する新しいユーザーを作成
PUT更新するユーザー情報を更新
DELETE削除するユーザーを削除

4つの主要

GET - データを取得する

サーバーからデータを取得します。最も基本的なです。

GET /users        → ユーザー一覧を取得
GET /users/1      → ID:1のユーザーを取得
GET /users?name=田中  → 名前が「田中」のユーザーを検索
  • リクエストボディを持たない
  • URLにパラメータを含めることができる(クエリパラメータ)
  • 何度実行してもサーバーの状態を変えない

POST - データを作成する

サーバーに新しいデータを作成します。

POST /users
Content-Type: application/json

{
  "name": "田中太郎",
  "email": "tanaka@example.com"
}
  • リクエストボディに作成したいデータを含める
  • 実行するたびに新しいデータが作られる

PUT - データを更新する

既存のデータを更新します。

PUT /users/1
Content-Type: application/json

{
  "name": "田中太郎",
  "email": "tanaka-new@example.com"
}
  • URLで更新対象を指定する(/users/1 → ID:1のユーザー)
  • リクエストボディに更新後のデータを含める

PUTとPATCH

データの更新には PUTPATCH の2つのがあります。

  • PUT: データ全体を置き換える
  • PATCH: データの一部だけを更新する

実際のプロジェクトでは、両者が混同して使われたり、「PUTのみ使う」「PATCHのみ使う」といった独自ルールがあったりします。

DELETE - データを削除する

既存のデータを削除します。

DELETE /users/1
  • URLで削除対象を指定する
  • 通常、リクエストボディは持たない

CRUDとの対応

Webアプリケーションの基本操作は と呼ばれます。はCRUDに対応しています。

意味
Create作成POST
Read読み取りGET
Update更新PUT / PATCH
Delete削除DELETE

について

には「」という性質があります。

べき等(idempotent) とは、「同じ操作を何度実行しても、結果が変わらない」という意味です。

べき等説明
GET何度実行してもサーバーの状態を変えない
PUT何度更新しても同じ状態になる
DELETE何度削除しても「存在しない」状態になる
POST×実行するたびに新しいデータが作られる

なぜが重要?

ネットワークの問題でが重複送信されることがあります。

べき等な(GET, PUT, DELETE)は再送信されても問題ありませんが、POSTは重複実行されると同じデータが複数作られてしまう可能性があります。

API開発では、この性質を意識して設計することが大切です。

RESTful APIの慣習

API設計では、URLとの組み合わせ方に一般的なパターンがあります。これを RESTful な設計と呼びます。

GET    /users      → ユーザー一覧を取得
GET    /users/1    → ID:1のユーザーを取得
POST   /users      → 新しいユーザーを作成
PUT    /users/1    → ID:1のユーザーを更新
DELETE /users/1    → ID:1のユーザーを削除

URLは「何を」、は「どうする」を表します。この組み合わせで、直感的に理解しやすいAPIが作れます。

セクションまとめ

  • GET(取得)、POST(作成)、PUT(更新)、DELETE(削除)が基本
  • はCRUD操作に対応している
  • GET, PUT, DELETEはべき等、POSTはべき等ではない
  • RESTful APIではURLとの組み合わせで操作を表現する