2015-02-08 2 views
0

Так у меня есть куча путей, которые я могу получить доступ через как локальный хост: 3000/сообщений локальный: 3000/пользователямКак добавить/API к этим маршрутам

конфигурация/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 и такие

ответ

1

Если вы разрабатываете API, вы должны рассмотреть управление версиями, таким образом отделяя ваш JS ON 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

Versioning свои API, считается хорошей практикой, потому что вы хотите, чтобы ваш API оставаться последовательными.

Там отличный RailsCast по API управления версиями:

http://railscasts.com/episodes/350-rest-api-versioning?view=asciicast

Смежные вопросы