HTML 인터페이스를 통해 필요한 모든 작업을 수행하는 레일즈 앱이 있습니다. 이제는 기능 비트에 대한 액세스를 제공하는 API를 사용하고 싶습니다.Rails는 기존 컨트롤러 동작을 가리키는 경로를 사용하여 API를 구현합니다.
Routes.rb를 사용하여 다른 컨트롤러의 동작에 일부 API 컨트롤러 동작을 선택적으로 전달하는 방법은 무엇입니까?
나는 시도 다음
내 일반 컨트롤러 경로를 잘 사용하여 작업 :
match 'stuff' => 'stuff#index'
get 'stuff/index'
get 'stuff/some_get_action'
post 'stuff/some_post_action'
을하지만 난 내 API에 대한하려고하면
match 'api' => 'api#index'
match 'api/some_get_action' => 'stuff#some_get_action', :via => :get
match 'api/some_post_action' => 'stuff#some_post_action', :via => :post
또는 ...
match 'api' => 'api#index'
get 'api/some_get_action', :to => 'stuff#some_get_action'
post 'api/some_post_action', :to => 'stuff#some_post_action'
geg 오류. API URL을 테스트하기위한 양식이 포함 된 HTML 페이지를/api/index로 이동하면 url_for가 '경로 일치 없음 ...'이라는 '라우팅 오류'예외를 발생시킵니다.
앱에 API를 사용하려면 모범 사례를 따라야합니다. app/v1과 같은 버전 관리를 도입하고 이에 대한 다른 컨트롤러를 만듭니다. 만약 당신이 뚱뚱한 모델 스키니 컨트롤러 접근 방식을 고수한다면, 이것은 꽤 쉽게 이루어져야합니다. –