所以我有很多可以通过localhost访问的路由:3000 / posts localhost:3000 / users
config / routes.rb看起来像这样
resources :posts do
resources :comments, shallow: true do
delete :destroy_all, on: :collection
end
resources :images, shallow: true
end
resources :comments, only: [:new]
resources :users
root 'welcome#index'
如何修改它以便我也可以正常访问它们以及API访问它们 http://localhost:3000/api/posts http://localhost:3000/api/users/new等等
答案 0 :(得分:1)
如果您正在构建API,则应考虑进行版本控制,从而将JSON API与HTML界面分开;这意味着将JSON API拉出到版本化API命名空间中的单独控制器中。
namespace :api do
namespace :v1 do
resources :posts do
resource :comments, shallow: true do
delete :destroy_all, on: collection
end
end
resources :comments
resources :users
end
end
resources :posts do
resource :comments, shallow: true do
delete :destroy_all, on: collection
end
end
resources :comments
resources :users
这些控制器将存在于app/controllers/api/v1
。
您的路线现在看起来像:
/api/v1/posts
对API进行版本控制被认为是一种很好的做法,因为您希望API保持一致。
在API版本控制方面有一个很棒的RailsCast:
http://railscasts.com/episodes/350-rest-api-versioning?view=asciicast