Task.7 では Article に関する API の実装を行なっていきましょう!
タスク内容
- API の endpoint (どんな URL アクセスにするか)を設定しよう。( endpoint は
/api/v1 から始まることとする )
補足
/api/v1/articles で CRUD 処理ができるような endpoint が生えるよう、routes.rb を修正していきましょう!
0. そもそもendpointって何?
- エンドポイントは「住所(URL)に、用件(HTTPメソッド)を添えた宛先」
- なぜ設定する
- 保守がしやすくなるため
- 1つのエンドポイントでCRUDを全部やろうとすると起きること
- paramsの中身を見て処理を分岐させる必要がある
- その結果
- 「このリクエストが何をしたいのか」が入口だけでは分かりにくくなる
- 処理が複雑になり、バグやテスト漏れが起きやすくなる
- エラーの原因も追いにくくなる
- api/vi について
- api: このURL配下は画面(HTML)ではなく、主にJSONを返すAPIという区
- 例:/articles(画面用)と /api/articles(API用)
- v1: APIのバージョン1という意味
- 仕様変更がしやすいようにバージョンを分けている
- 例:v1:既存のサービス
- 例:v2: 既存サービスに変更を加えてもの
1. このTaskでやろうとしていること
- このタスクでやること
- エンドポイント(HTTPメソッド+URL)を設定する
- リクエストが「何をしたいのか(作成・取得・更新・削除)」を入口で分かるようにするため
- 1つのエンドポイントに処理をまとめると起きること
- paramsの中身を見て分岐が増える
- その結果
- 処理が複雑になる
- バグやテスト漏れが起きやすくなる
- エンドポイントを分けておくメリット
2. 処理の流れ(5行)
- ユーザーが画面から送信して、HTTPメソッド + URL にリクエスト(endpoint)が飛ぶ
- routes.rb が対応する Controller#action に振り分ける