RailsでAPIサーバー用プロジェクトを作成する
仕様
タスクをjson形式でやりとりする。
API
タスク一覧:GET /tasks タスク(個別):GET /tasks/:id タスク登録:POST /tasks タスク更新:PATCH /tasks/:id 削除:DELETE /tasks/:id
Rails-API Gemを使ってプロジェクトを作成する
こちらを仕様すると、View周りのassets等が排除されたシンプルなRailsプロジェクトが作成されます。
View周りはMV*なJSのフレームワークに任せるっていうの、最近流行ってるんですかね?
gem を追加する gem install rails-api rails-apiを用いてプロジェクトを作成する rails-api new todo_api
好みに応じて、Gemfileを編集し、bundle installする。
僕はテスト用にfactory_girl_rails, rspec, rspec-railsを追加しました。
テーブル作成 rails g scaffold task name:string rake db:migrate
これでコントローラも作成されます。というかこの時点で
Chrome Web Store - Advanced REST client
等を使って叩くと動きますw
あとは
# create時にpostされたパラメータに対して適用するメソッド def task_params allow = [:name] params.require(:task).permit(allow) end # POST /tasks # POST /tasks.json # params example # {"task": # {"name": "sample"} # } def create @task = Task.new(task_params) if @task.save render json: @task, status: :created, location: @task else render json: @task.errors, status: :unprocessable_entity end end
一応ガードをかけておきます。
次はFactory girlを使ったRSpecの書き方かな・・・