rest apiを作成する際に、考慮すべきレスポンスのステータスコードをまとめてください |
REST API設計でステータスコードをどう使うかは、 以下では
1. 大分類の全体像(まず俯瞰)
2. 2xx(成功系)で考慮すべきもの200 OK最も汎用的
注意:
201 Createdリソース作成成功
204 No Content成功だが返すものがない
注意:
3. 3xx(基本的にAPIでは使わない)原則
例外:
通常のJSON APIでは避ける。 4. 4xx(クライアント起因エラー)400 Bad Requestリクエスト自体が不正
401 Unauthorized認証されていない
注意:
403 Forbidden認証済みだが権限がない
401と混同しやすいので要注意。 404 Not Foundリソースが存在しない
実務では:
409 Conflict状態の衝突
REST的に非常に重要。 422 Unprocessable Entity形式は正しいが意味的に不正
例:
400との使い分け:
429 Too Many Requestsレート制限
5. 5xx(サーバ側エラー)500 Internal Server Error想定外の例外
クライアントに詳細は返さない。 502 Bad Gateway依存サービスの異常
503 Service Unavailable一時的に使えない
Retry-Afterを返すのが望ましい。 504 Gateway Timeout依存先がタイムアウト
6. よくある設計ミス① 何でも200で返す
→ HTTPの意味を使うべき ② 400と422を区別しない
③ 401と403の混同
7. 実務でよく使う最小セット現実的には、まずこれを押さえれば十分です。 8. 設計の基本思想(重要)REST APIのステータスコードは、
です。
まとめ(一言)
REST API設計では、
という意識が重要です。 |
|

この記事へのコメント