仕様
タスクをjson形式でやりとりする。
タスク一覧:GET /tasks
タスク(個別):GET /tasks/:id
タスク登録:POST /tasks
タスク更新:PATCH /tasks/:id
削除:DELETE /tasks/:id
Rails-API Gemを使ってプロジェクトを作成する
rails-api/rails-api · GitHub
こちらを仕様すると、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
あとは
def task_params
allow = [:name]
params.require(:task).permit(allow)
end
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の書き方かな・・・