如何在现有Rails服务器上添加API层

时间:2015-03-18 14:47:24

标签: ruby-on-rails api

有一些问题,但所有这些问题都包括对现有路线进行更改或从头开始创建API。我想要做的是在完全不同的子路径下分离API。像这样:

/users/:id - >常规Rails服务器

/api/v1.0/users/:id - >修改后的API层,用于访问基本Rails服务器的模型和控制器

我真的想将API的逻辑与Rails基础实现

分开

2 个答案:

答案 0 :(得分:1)

在routes.rb配置:

namespace :api do
  namespace :v1 do
    resources :users
  end
end

如果您想使用API代替Api,请config/initializers/inflectors.rb添加:

ActiveSupport::Inflector.inflections(:en) do |inflect|
  inflect.acronym   'API'
end

您的users_controller必须位于app/api/v1/controllers,如下所示:

module API
  module V1
    class UsersController < ApplicationController
      ...
    end
  end
end

修改:您可以在railscasts: 350-rest-api-versioning

找到更多选项

答案 1 :(得分:1)

你看过这个吗? Api on Rails

特别注意如何在第2章中列出routes.rb。它展示了如何使用范围和命名空间来创建到项目中不同子目录的路由。