タスク内容
- application_controller を継承した api_controller を作成しよう。
補足
Rails を新規作成すると、自動的に /app/controllers/application_controller.rb が作成されるようになっています。
Task. 7-1 で /api/v1 といった endpoint を作ったと思いますが、この v1 の部分は API のバージョンであり、v2 や v3 になる可能性があるわけです。
すると、ベースとなる application_controller の実装も変わってくる可能性が出てくるので、application_controller を実装した base_api_controller ( /app/controllers/api/v1/base_api_controller.rb )を作ってください。
1. このTaskでやろうとしていること
- 前提条件
- application_controllerは、リクエストを受け取ったり、レスポンスを返したりする基本機能が最初から備わっている
- 何をやる?
- application_controller を継承したbase_api_controllerの作成
- なぜやる?
- ベースとなる application_controller は変更を加える可能性もあるので、
実装も変わってくる
- メリット
- 元々備わっている認証やエラーハンドリングなどの共通処理をまとめられる
- controllerの変更を加えるときに変更箇所が少なく済む
2. 処理の流れ
- API用の共通ルールを入れるために BaseApiController を作る(ApplicationControllerを継承)
- BaseApiControllerに「API共通で使いたい処理」をまとめて書く(例:認証、エラーの返し方)
- API配下の各Controllerが BaseApiController を継承するようにする
- 各Controllerは、個別の処理(記事作成など)だけを書くようになる
- 実際に叩くと、共通処理(認証/エラー)が先に動き、結果をJSON+statusで返せるようになる