/idea_management_API

アイデアを管理するAPIです。

Primary LanguageRuby

ご覧下さりありがとうございます。

開発に当たり、Githubで管理を行いました。

Githubリンク

アイデア管理API

アイデアを登録、一覧を取得できる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

/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

/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