2012-04-05 10 views
1

現在、私のウェブサイトのAPIのドキュメントを書いています。APIドキュメントのRailsルート

私はルートを書くための「最良の」方法についてはわかりません。私はTwitterのは良い仕事をして考えると、私は彼らのURL構造をコピーしたいと思います:

https://dev.twitter.com/docs/api 
https://dev.twitter.com/docs/api/1/get/statuses/show/:id 
https://dev.twitter.com/docs/api/1/post/statuses/retweet/:id 

それはのようになります。

namespace :docs do 
    resources :api do 
     # and then... not sure 
    end 
end 

ないこの部分のためのルートを作成する方法について確認してください: /get/statuses/show/:id

カスタムルートを作成すればよいですか?

match "/:verb/:resource/:action/:params" => "api#resource" 

もっと良い方法がありますか?


私は何になってしまった、誰かを助けるかもしれない:)

Ibarcraft::Application.routes.draw do 
    def api_versions; [:v1] end 
    def api_verbs; [ :index, :show ] end 

    constraints subdomain: "api" do 
     scope module: "api", as: "api" do 
      versions = api_versions 

      versions.each do |version| 
       namespace version, defaults: { format: "json" } do 

        # all my routes 
        resources :barcrafts, only: api_verbs do 
         collection do 
          get :search 
         end 
         scope module: "barcraft" do 
          resources :users, only: [:index] 
         end 
        end 
        # and more... 

       end 
      end 

      match 'v:api/*path', to: redirect { |params, request| "/#{versions.last}/#{params[:path]}" + (params[:format] ? ".#{params[:format]}" : "") } 
      match '*path', to: redirect { |params, request| "/#{versions.last}/#{params[:path]}" + (params[:format] ? ".#{params[:format]}" : "") } 
     end 
    end 
end 

答えて

1

はいカスタムルートを必要としています。 :actionキーが良い誰かが興味を持っていた場合、私は、上記の私のルートを掲載:action_name

+0

のようなものを使用して、コントローラのアクション名のために予約されていることを

しかし、ノート、。 – Robin