この記事は東京海洋大学NePPの Advent Calendar 2024の23日目です。
はじめに
こんにちは!
私がRailsのステータスコードとRails特有のシンボルについて学んだことのアウトプットの機会としてこの記事を書きました。
あくまで個人的な見解ですので、あしからずご容赦ください。
HTTPステータスコードとは
WEBサーバーがWEBブラウザなどのクライアントからのリクエストに対する応答として示す3桁の数字です。これにより、リクエストが成功したか、エラーが発生したか、または追加の操作が必要かをクライアントに通知します。
なぜHTTPステータスコードのお気持ち
ステータスコードは、人間にリクエストの状況を伝える「お知らせ」のようなものです。
それぞれのステータスコードには、クライアントやサーバーに対する「状態の伝達」と「適切な対応を促すメッセージ」が込められています。
例えば:
403 : アクセス権がない。
404 : リクエストされたリソースが見つからない。
など、これらが返されたら、ユーザーは「アクセス権がないんだな!」や「リクエストしたURLが見つからないんだ」と現在の状況を判断することができます。
そして次のアクションをとることができます。(アクセス権を手に入れてからもう一度リクエストしてみよう!とか)
数値とシンボルについて
Railsでは、HTTPステータスコード(例: 200, 404,)を直接数値で書く代わりに、シンボル(例: :ok, :not_found,) で指定することができます。
シンボル (:ok) と数値 (200) の違い
:ok
可読性が高い
シンボルを使うと、コードを読むだけで意味が直感的に理解できます。
render json: user, status: :ok
Railsが内部的にシンボルを対応する数値コード(ここでは200)に変換します。
200
標準的なHTTPステータスコード:
HTTPの知識がある人には直接的にわかりやすい。
render json: user, status: 200
どちらを使うべきか
筆者の見解
個人的な意見としては、シンボルを使うべきだと思います。
理由は、文字を見ればある程度何についてのエラーなのかがわかるのと、Railsのコードスタイルに適しているからです。
しかし、標準的なステータスコードを使いたかったり、プロジェクトによって書き方は異なるので、
その時の状況次第で使い分けができるのがベストだと思います。
終わり
最後にシンボルと数値の早見表のリンクを貼ったので参考にしてみてください。
@takuo_maeda
(前田 卓大)さん
HTTPステータスコード一覧
参考文献
https://qiita.com/takuo_maeda/items/9cff0b03e74f8f600eee
https://qiita.com/terufumi1122/items/997e24dde87f807e3944