rails new rails-api --api
rails g scaffold users name:string email:string
rails db:create
rails db:migrate
rails c
User.create(name:"chinone",email:"chinone@chinone.com")
curl http://localhost:3000/users
# [
#   {
#     "id": 1,
#     "name": "chinone",
#     "email": "chinone@chinone.com",
#     "created_at": "2017-05-19T07:00:17.309Z",
#     "updated_at": "2017-05-19T07:00:17.309Z"
#   }
# ]

rails g scaffold book title author_name published_on:date
rails db:migrate
rails c
Book.create(title:"rails books",author_name:"kazuki")
curl http://localhost:3000/books
# [
#   {
#     "id": 1,
#     "title": "rails books",
#     "author_name": "kazuki",
#     "published_on": null,
#     "created_at": "2017-05-19T07:05:10.818Z",
#     "updated_at": "2017-05-19T07:05:10.818Z"
#   }
# ]
docker-compose run --rm app rails new . --api --force --database=postgresql --skip-bundle
docker-compose run --rm app bundle install
docker-compose build
# update config/docker-compose.yml
docker-compose run --rm app rails db:create
# update Gemfile
# gem 'devise'
# gem 'active_model_serializers'
docker-compose up --build
rails generate devise:install
rails generate devise User
rails generate migration add_access_token_to_user
# add_column :users, :access_token, :string
rails db:migrate

# create user
curl localhost:5000/v1/users --data '{"user": {"email": "user@example.com", "password": "mypass"}}' -v -H "Accept: application/json" -H "Content-type: application/json"
# get token
curl localhost:5000/v1/login --data 'email=user@example.com&password=mypass'
# {"email":"user@example.com","token_type":"Bearer","user_id":1,"access_token":"1:HfJjaiU7v6Zs8Lt-XWDC"}
# get user
curl localhost:5000/v1/users -v -H "Authorization: 1:HfJjaiU7v6Zs8Lt-XWDC"
# [{"id":1,"email":"user@example.com","created_at":"2017-05-19T07:36:53.061Z","updated_at":"2017-05-19T07:41:33.183Z"}]

# クロスドメイン通信
gem 'rack-cors'
http://uraway.hatenablog.com/entry/2016/07/11/090206