rails5の --api とは少し違うみたいだけど
gemのrails-apiを試してみました。
先ずは
gem install rails-api
します。
次に適当に
$ rails-api new sample_api
します。
create
create README.rdoc
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/controllers/application_controller.rb
create app/assets/images/.keep
create app/mailers/.keep
create app/models/.keep
create app/controllers/concerns/.keep
create app/models/concerns/.keep
create bin
create bin/bundle
create bin/rails
create bin/rake
create bin/setup
create config
create config/routes.rb
create config/application.rb
create config/environment.rb
create config/secrets.yml
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
create config/initializers
create config/initializers/filter_parameter_logging.rb
create config/initializers/secret_token.rb
create config/initializers/wrap_parameters.rb
create config/locales
create config/locales/en.yml
create config/boot.rb
create config/database.yml
create db
create db/seeds.rb
create lib
create lib/tasks
create lib/tasks/.keep
create lib/assets
create lib/assets/.keep
create log
create log/.keep
create public
create public/404.html
create public/422.html
create public/500.html
create public/favicon.ico
create public/robots.txt
create test/fixtures
create test/fixtures/.keep
create test/controllers
create test/controllers/.keep
create test/mailers
create test/mailers/.keep
create test/models
create test/models/.keep
create test/helpers
create test/helpers/.keep
create test/integration
create test/integration/.keep
create test/test_helper.rb
run bundle install
...
おお、
stylesheetsとかviewが生成されていない。
適当にmodel作ります。
$ cd sample_api
$ bin/rails g model User name:string
$ rake db:migrate
次、controller。
バージョンで管理できるようにディレクトリ作ります。
$ bin/rails g controller api/v1/users
app>controllers>api>v1>users_controller.rb
class Api::V1::UsersController < ApplicationController
def index
@users = User.all
render json: @users
end
end
次、
app>config>routse.rb
Rails.application.routes.draw do
namespace :api, {format: 'json'} do
namespace :v1 do
resources :users
end
end
end
確認用にseedでサンプルデータ作ります。
db>seeds.rb
User.create([
{name: "mammosu まんもす"},
{name: "Mam Mosu"},
{name: "ま んもす"}
])
$ rake db:seed
$ rails server
ブラウザでhttp://localhost:3000/api/v1/users
もしくはターミナルで
curl "http://localhost:3000/api/v1/users" -X GET
で出来ました。
余計な物が出来無いんですっきりですね。
rails5楽しみです。