204 No Content について
前回の記事 prmd の辛いところ で「手続きクラスをコールするだけのAPIの返り値は No Content
で構わない」と書いたものの、
もし今後なんらかの JSON
を返却する必要がでてきたら?と考えると、
最初から HTTP/1.1 200 OK
としておくべきな気がしてきた。
Response は empty
としかったのはドキュメント上でも、
レスポンスサンプルが
{}
だけとなってしまって、意図してこうなっているのかわかりづらいので、
意味のない JSON
を返すくらいなら、実体としては No Content
なのだから、
HTTP/1.1 204 No Content
でいいじゃない、という発想だったのだけど、
もし JSON
の返却要件が追加されたら、当然ステータスコードは 200
や 201
になりうるので、
その時点でステータスコードが変わってしまうのはイマイチ君な気がする。
だったら最初から 200
を返しつつ、空 JSON
をレスポンスにしておくのが正しい気がする。
(200
にしたけど、やっぱり実装が変わって、
何かリソースを作成、リダイレクトしたいから 201
にするべきってなったらどうするんだというモヤモヤが新たに・・)