API的资源URL版本

时间:2011-12-22 14:06:22

标签: ruby-on-rails api routing

我有这些API的路线:

Fuu::Application.routes.draw do
  scope(:module => 'api', :defaults => {:format => 'json'}) do
    namespace('v1') do
      get 'welcome' => 'welcomes#index'
    end
  end
end

如您所见,有一个v1模块。但我想将1作为版本号,以便获得一些看起来像这样的URL:

https://api.fuu.com/:version/direct_messages/sent.format

...版本只是1

我尝试使用namespace('1'),但这是不可能的,因为模块不能是整数。

我们怎么能这样做?

1 个答案:

答案 0 :(得分:0)

只需将其更改为范围,而不是命名空间:

Fuu::Application.routes.draw do
  scope(:module => 'api', :defaults => {:format => 'json'}) do
    # API Version 1
    scope('1', :module => 'v1') do
      get 'welcome' => 'welcomes#index'
    end
  end
end  

就个人而言,我喜欢你在v1中使用命名空间路由/模块的第一种方法,因为它可以使事情更好地组织起来。