我的页面应该放在Rails API项目中的哪个位置?

时间:2017-10-21 22:47:12

标签: ruby-on-rails ruby ruby-on-rails-5 rails-api

我正在构建一个仅限Rails API的应用程序,用于我用纯html / js制作的游戏。为了更好的结构,应该是位于大型Rails项目中的页面(将添加用户等)。上市?应用程序?我应该在根级别创建一个文件夹吗?

1 个答案:

答案 0 :(得分:1)

您可以通过多种方式实现这一目标,如果您只想提供API。

仅限Rails API:Rails API only

由于只有api可能对JWT身份验证感兴趣:JWT Sample

路线 - 示例!

namespace :api do
    namespace :v1, defaults: { format: :json } do
        resources :orders, only: [:index, :show,:create] do
            member do
                post 'cancel'
                post 'status'
                post 'confirmation'
            end
        end

        # Users
        resources :users, only: [] do
            collection do
                post 'confirm'
                post 'sign_in'
                post 'sign_up'
                post 'email_update'
                put  'update'
            end
        end
    end
end

#output
...
GET  /api/v1/orders(.:format)  api/v1/orders#index {:format=>:json}
POST /api/v1/orders(.:format)                  api/v1/orders#create {:format=>:json}
 GET  /api/v1/orders/:id(.:format)              api/v1/orders#show {:format=>:json}
 POST /api/v1/users/confirm(.:format)           api/v1/users#confirm {:format=>:json}
 POST /api/v1/users/sign_in(.:format)           api/v1/users#sign_in {:format=>:json}     

Controlers: - 样本!

#application_controller.rb
class ApplicationController < ActionController::API
end

#api/v1/app_controller.rb
module Api
    class V1::AppController < ApplicationController
       ...    
    end
end

#api/v1/users_controller.rb
module Api
    class V1::UsersController < V1::AppController
      ...
    end
end