2011-08-11 3 views
0

레일스를 처음 사용했습니다. 다음과 같은 것이 가능한지 아무에게도 말할 수 있습니까? 그렇다면 올바른 "경로"항목은 무엇입니까?버전이있는 웹 서비스 용 레일스 경로

하나의 작업 (색인)이있는 컨트롤러 ItemController가 있습니다. 기본적으로 설정하면 http://my.app:3000/item에 액세스 할 수 있지만 http://my.app:3000/api/v1/을 통해이 컨트롤러 (다른 컨트롤러가 아닌이 컨트롤러 만)에 액세스 할 수 있습니다. 네임 스페이스에서

감사 X

바네사

답변

1

설정 그것을 :

namespace :api do 
    namespace :v1 do 
    resources :items 
    end 
end 

그리고 당신이 그것을 Api::V1::ItemsController에 정의 된 클래스를 app/controllers/api/v1/items_controller.rb에이 컨트롤러를 이동하고 전화를해야합니다.

API 동작을 위해 원하는 맞춤 로직을 사용하기 때문에 로직을 다른 컨트롤러에 넣을 수 있습니다. 기타보다 ApplicationController입니다. 즉,이 새 컨트롤러는 ApplicationController이 아닌 Api::V1::BaseController에서 상속받습니다.

내 메모의 "API 디자인"장 Rails 3 in Action에서이 문제를 다룹니다.

+0

예, 동의합니다. 최선의 방법입니다. – Anatoly