我有一個Rails應用程序,它可以通過HTML接口完成我需要的所有工作,現在我想要通過API提供對訪問某些功能的訪問。Rails使用指向現有控制器動作的路由實現API
我該如何選擇性地將某些API控制器操作轉發給使用Routes.rb的另一個控制器的操作?
我曾嘗試以下:
我經常控制器路線做工精細用:
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'
我ge錯誤。當我導航到/ api/index以服務於一個包含用於測試API URL的表單的HTML頁面時,url_for引發了一個'路由錯誤'異常,表示'無路由匹配...'。
如果你想在你的應用上使用API,你應該堅持最佳實踐:引入版本控制,如app/v1併爲它創建不同的控制器。如果你堅持胖模型瘦身控制器的方法,這應該很容易做到。 –