🎃

データがない時のHTTP レスポンスコード

2022/02/13に公開

ユーザー登録が可能で、ユーザーごとに表示が異なるようなwebアプリがあるとする。APIエンドポイントがRESTfulな設計にされていて、user/1のように情報取得するとする。
そのユーザーが存在しない場合、どういうHTTPレスポンスコードを返却すればいいのか気になった。

まずHTTP レスポンスコードの一欄を見てみる。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

200: リクエストの成功。
204: リクエストは成功だが、コンテンツがない。
あたりが想定される。
または、
400: Bad Request
404: Not Found
あたりも候補になるだろうか。4xxはWebsiteであれば、ページがないかシンタックスが正しくない場合に利用される。

ただしこれは、HTTPの話であって、RESTの設計におけての話ではない。

ググってみて出てきたいくつかの記事を貼っておく。

https://stackoverflow.com/questions/9930695/rest-api-404-bad-uri-or-missing-resource

https://stackoverflow.com/questions/11746894/what-is-the-proper-rest-response-code-for-a-valid-request-but-an-empty-data

https://www.darraghoriordan.com/2020/07/04/http-response-code-no-search-results-found/

https://qiita.com/YuyaAbo/items/a8b4b055a3d9dbeffcf3

Discussion