## What — リクエスト1行目の先頭に書く動詞 HTTP メソッドは、リクエストの1行目の先頭に書く動詞で、「この URL に対して何をしたいか」をサーバーに伝える部品。 `POST /users HTTP/1.1` の `POST` がそれ。サーバーはまずこの動詞を見て、同じ URL への処理を「読む・作る・変える・消す」に振り分ける。 種類は HTTP の仕様上9個+2026年6月に標準化された QUERY(RFC 10008・「ボディを持てる安全な GET」)があるが、API を叩くのに使うのは実質この5個で足りる。 ## How — 5個の意味と1本の判定軸 判定軸は1本:**サーバーのデータが変わるかどうか**。変わらないのは GET だけで、残り4つは全部「書き込み系」。 | メソッド | 意味 | ボディ | 成功時の典型 | | ------ | ------------- | ----------- | ---------------- | | GET | 取得(データは変わらない) | なし | `200 OK`+中身 | | POST | 新規作成 | あり | `201 Created` | | PUT | 丸ごと置き換え | あり(全項目) | `200` / `204` | | PATCH | 一部だけ更新 | あり(変える項目だけ) | `200` | | DELETE | 削除 | なし | `204 No Content` | どのメソッドを書くかは叩く側が選ぶ。ただし**選択肢は API 側がドキュメントで指定している**——「このエンドポイントは GET と POST を受け付ける」と決まっていて、外れたメソッドを送ると `405 Method Not Allowed` が返る。迷ったら自分で推理せず、ドキュメントの指定をそのまま写す。 ## 落とし穴 - **ブラウザのアドレスバーから送れるのは GET だけ**。URL を打って Enter は常に GET になる。POST 以降を試すには [[curl]] の `-X` かコードが要る(`-d` を付けると curl は自動で POST にしてくれる) - **PUT と PATCH の混同**。PUT は「全項目を送り直して丸ごと置き換え」なので、送り忘れた項目が消える扱いになる API がある。1項目だけ直したいときは PATCH ## 関連 - [[API]] — API まわりの地図 - [[REST]] — この動詞を「どの URL と組み合わせるか」の流儀(資源×メソッドの表) - [[HTTPリクエストの構造]] — メソッドが収まる場所(4点セットの1つ目) - [[curl]] — `-X` でメソッドを指定して送るコマンド