初めに
APIサーバーを作る際にどのHTTPステータスコードを返せばよいか毎回悩むため忘れないようにメモ
※個人的なメモなので信頼性は無いです
成功 (2xx系)
処理が正常に完了した場合。
200 OK のみでも問題ないと思う
200 OK
他の2xx系の条件に当てはまらない場合に使用
201 Created
ファイルのアップロード、データベースへのデータ登録等の作成処理が成功した際に使用
POSTメソッドで使用
202 Accepted
処理を受け付けたがバックグラウンドで処理が続行中など、まだ処理が完了していない場合に使用
バッチ処理などで使用
失敗 (クライアント側に問題あり 4xx系)
クライアント側の問題で処理に失敗した際に使用
400 Bad Request
他の4xx系の条件に当てはまらない場合に使用
401 Unauthorized
認証エラーの際に使用
ログインに失敗した、認証のない人がアクセスしてきた、許可していないIPアドレスからのアクセス等
403 Forbidden
認証を受けている人が認証外のデータにアクセスしようとした時に使用
404 Not Found
存在しないデータにアクセスしようとした時に使用
413 Request Entity Too Large
サーバーへ送ろうとしているデータサイズが大きすぎて処理できない際に使用
429 Too Many Requests
単位時間あたりのアクセス数が上限を超えたときに使用
※リトライで復旧する場合に使用
失敗 (サーバー側に問題あり 5xx系)
サーバー側の問題で処理に失敗した際に使用
500 Internal Server Error
他の5xx系の条件に当てはまらない場合に使用
503 Service Unavailable
外部サーバーやデータベースにアクセスしようとした際に外部サーバが過負荷で通信できなかったときに使用
※リトライすることで復旧する場合に使用
参考文献
先輩と覚える HTTP ステータスコード
HTTP レスポンスステータスコード