REST API/RESTful API
HTTP メソッド
GET
データの取得に使う。
POST
データの新規作成に使う。
PUT
データの完全な上書きに使う。
PATCH
データの一部の上書きに使う。
DELETE
データの削除に使う。
HTTP ステータスコード早見表
-になっている組み合わせは個人的にちょっと考えにくいかなという組み合わせである。
| Code | だいたいの意味 | GET | POST | PUT/PATCH | DELETE |
|---|---|---|---|---|---|
| 200 OK | OK。レスポンスボディを見てくれ。 | ✅ | ✅ | ✅ | - |
| 201 Created | OK。リソースを作成したからレスポンスボディを見てくれ。 | - | ✅ | - | - |
| 204 No Content | OK。以上。 | ✅ | ✅ | ✅ | ✅ |
| 400 Bad Request | Error。お前のリクエストはバリデーション的に NG だ。あるいはとりあえずお前が悪い。 | ✅ | ✅ | ✅ | ✅ |
| 401 Unauthorized | Error。お前は認証してないからお前が悪い。 | ✅ | ✅ | ✅ | ✅ |
| 403 Forbidden | Error。お前には権限がないからお前が悪い。 | ✅ | ✅ | ✅ | ✅ |
| 404 Not Found | Error。存在しないリソースにアクセスしようとしたお前が悪い。 | ✅ | ✅ | ✅ | ✅ |
| 500 Internal Server Error | Error。とりあえず俺が悪い。 | ✅ | ✅ | ✅ | ✅ |
| 503 Service Unavailable | Error。俺はもうだめだ。 | ✅ | ✅ | ✅ | ✅ |
リクエストヘッダー/リクエストボディ/パスパラメータ/クエリパラメータ使い分け
https://example-url.com/api/v1/resources/${pathparameter}?=${queryParameter1}&${queryParameter2};
GET メソッドのとき
GET メソッドのとき、リクエストボディは使えない。パスパラメータかクエリパラメータを使う。
アクセストークン
リクエストヘッダーに乗せる。
API キー
クエリパラメータに乗せる。
リソースの識別子(ID)
パスパラメータに乗せる。
リソースの変更内容
リクエストボディに乗せる。
リソースの取得条件
識別子(ID)はパスパラメータに乗せる。
絞り込みなど省略可能の条件はクエリパラメータに乗せる。