ご覧下さりありがとうございます。
開発に当たり、Githubで管理を行いました。
アイデアを登録、一覧を取得できるAPIです。
- Ruby on Rails (6.1.4.4)
- Ruby (3.0.3)
- MySQL (8.0)
- Docker
- docker-compose
- RSpec
- Rubocop
- Postman
-
疑似的にチーム開発を意識 git-flowを実践したり、githubのIssueを活用し、チーム開発を意識した個人開発に挑戦しました。
-
N+1問題を解決 RSpecとPostmanを活用してAPIテストを実施し、N+1問題が発生してしまっていた箇所を発見・改善しました。
/api/v1/ideasにPOSTすることで登録ができます。
リクエストのcategory_nameがcategoiesテーブルのnameに存在する場合
- category_nameからcategory_idを検索し、アイデアを登録します。
- responseで201を返します。
リクエストのcategory_nameがcatogiresテーブルのnameに存在しない場合
- 新たなカテゴリーを登録し、アイデアを登録します。
- responseで201を返します。
バリデーションエラーになった場合
- 新たなカテゴリーもアイデアも登録しません。
- responseで422を返します。
- category_name: string, null: false
- body: string, null: false
/api/v1/ideasにGETすることでアイデアの一覧を配列で取得できます。
各アイデアは以下のように整形しています。created_atはunixtimeで返却します。
{
id: number,
category: string,
body: string,
created_at: number
}
リクエストのcategory_nameが指定されている場合
- 該当するcategoryの一覧を返却します。
リクエストのcategory_nameが指定されていない場合
- すべてのアイデア一覧を返却します。
登録されていないcategory_nameの場合
- responseで404を返します。
- category_name: string