我正在关注此处发布的关于使用 Rails 路由对 API 进行版本控制的出色解决方案,但我一直遇到无限重定向。
这是我的一部分routes.rb
namespace :api do
namespace :v1 do
resources :books
end
namespace :v2 do
resources :books
end
match 'v:api/*path', :to => redirect("/api/v2/%{path}")
match '*path', :to => redirect("/api/v2/%{path}")
end
这与发布的答案几乎相同。访问/api/v1/books/list.json
按预期工作api/v2/books/list.json
。我遇到的问题是/api/books/list.json
,应该重定向到/api/v1/books/list.json
。如果我尝试访问 api 而不指定哪个版本,我的浏览器会以无限重定向响应。我的日志如下所示:
Started GET "/api/books/list.json?max_number=10" for 127.0.0.1 at 2013-04-01 22:00:51 -0400
Started GET "/api/v1/books%2Flist" for 127.0.0.1 at 2013-04-01 22:00:51 -0400
Started GET "/api/v1/books%2Flist" for 127.0.0.1 at 2013-04-01 22:00:51 -0400
Started GET "/api/v1/books%2Flist" for 127.0.0.1 at 2013-04-01 22:00:51 -0400
//... and so on