# Console
rails new APP_NAME --api
# Console
rake routes
Prefix Verb URI Pattern Controller#Action
api_users GET /users(.:format) api/users#index {:subdomain=>"api"}
POST /users(.:format) api/users#create {:subdomain=>"api"}
api_user GET /users/:id(.:format) api/users#show {:subdomain=>"api"}
PATCH /users/:id(.:format) api/users#update {:subdomain=>"api"}
PUT /users/:id(.:format) api/users#update {:subdomain=>"api"}
DELETE /users/:id(.:format) api/users#destroy {:subdomain=>"api"}
# routes.rb
Rails.application.routes.draw do
namespace :api, path: '/', constraints: { subdomain: 'api' } do
resources :users
end
# Same as doing:
# constraints subdomain: 'api' do
# namespace :api, path: '/' do
# resources :users
# end
# end
end
# controllers/api/users_controller.rb
module Api
class UsersController < ApplicationController
...
end
end
# config/application.rb
module ApiDemo
class Application < Rails::Application
# Only loads a smaller set of middleware suitable for API only apps.
# Middleware like session, flash, cookies can be added back manually.
# Skip views, helpers and assets when generating a new resource.
config.api_only = true
end
end