はじめに
HTTPの基本は リクエストとレスポンス。
では、そのリクエストは「何をしたいのか?」をどう伝えるのでしょう?
答えは HTTPメソッド です。
この記事では、
GET / POST / PUT / DELETE の4つを中心に、
実際に 動く例 を通して理解できるように解説します。
今日のゴール
・各メソッドの正しい役割がわかる
・curl を使って実際に叩いてみる
・LaravelでシンプルなAPIを作って挙動を確認する
HTTPメソッドとは?
HTTPメソッドは、
「サーバに対して何をしたいのか」 を伝えるための指示。
Webの世界はとりあえず以下の4操作さえ理解すれば9割OKです。
| メソッド | 意味 | 役割 |
|---|---|---|
| GET | 取得 | データを読む |
| POST | 作成 | 新しいデータを作る |
| PUT | 更新(全体) | データを完全に置き換える |
| DELETE | 削除 | データを消す |
REST APIでは、
URL と メソッド を組み合わせて操作を表現 します。
例:
| 操作 | メソッド | パス |
|---|---|---|
| ユーザー一覧の取得 | GET | /users |
| ユーザーを作成 | POST | /users |
| ユーザー更新 | PUT | /users/{id} |
| ユーザー削除 | DELETE | /users/{id} |
実験1. curl でメソッドを体験してみる
まずは curl を使って簡単に試します。
※ curl はほとんどのMac/Linuxで標準搭載
(WindowsもWSLやGit Bashで使えます)
GET(データ取得)
curl -X GET https://jsonplaceholder.typicode.com/posts/1
結果例:
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat",
"body": "quia et suscipit…"
}
POST(データ作成)
curl -X POST -H "Content-Type: application/json" \
-d '{"title": "Hello", "body": "World"}' \
https://jsonplaceholder.typicode.com/posts
結果例:
{
"title": "Hello",
"body": "World",
"id": 101
}
PUT(データ更新)
curl -X PUT -H "Content-Type: application/json" \
-d '{"title": "Updated"}' \
https://jsonplaceholder.typicode.com/posts/1
DELETE(データ削除)
curl -X DELETE https://jsonplaceholder.typicode.com/posts/1
ここまで実行すると、
メソッドごとの挙動が体感で理解 できるはずです。
実験2. Laravelで各メソッドを受け取るAPIを作る
ここでは、
Laravel を使って「メソッドによって返す内容を変える」簡単APIを作ります。
routes/api.php を編集
use Illuminate\Support\Facades\Route;
Route::get('/sample', function () {
return ['method' => 'GET'];
});
Route::post('/sample', function () {
return ['method' => 'POST'];
});
Route::put('/sample', function () {
return ['method' => 'PUT'];
});
Route::delete('/sample', function () {
return ['method' => 'DELETE'];
});
実際に叩いてみる
GET
curl -X GET http://localhost:8000/api/sample
結果:
{"method":"GET"}
POST
curl -X POST http://localhost:8000/api/sample
結果:
{"method":"POST"}
PUT
curl -X PUT http://localhost:8000/api/sample
結果:
{"method":"PUT"}
DELETE
curl -X DELETE http://localhost:8000/api/sample
結果:
{"method":"DELETE"}
これで、
リクエストのメソッドを使って処理を切り替えられる ことが理解できます。
REST APIでの正しいメソッドの使い分け
初学者がよくやりがちなのが、
❌ /addUser
❌ /updateUser
など 動詞をURLに入れてしまう パターン。
REST APIでは、
操作はメソッドで表すので URL が動詞になる必要はありません。
つまりURLは「リソース名」を表し、
| 操作 | メソッド | パス(REST的に正しい例) |
|---|---|---|
| 作成 | POST | /users |
| 更新 | PUT | /users/1 |
| 削除 | DELETE | /users/1 |
| 取得(一覧) | GET | /users |
| 取得(詳細) | GET | /users/1 |
こういう設計が標準であり、
フロント側もバック側も読みやすくなります。
今日のまとめ
・HTTPメソッドは「サーバに対して何をしたいのか」を伝える指示
・GET/POST/PUT/DELETE を押さえればWeb開発の9割を理解できる
・curl を使ってメソッドごとの違いを体験できる
・Laravelでもメソッドごとに処理を分岐できる
・REST APIでは「URL=リソース名」「操作=メソッド」で表現する
明日の Day3 は、
「HTTPステータスコード完全ガイド」
200 / 201 / 400 / 401 / 404 / 500 …
よく使うものをAPI実装例つきで徹底解説します。