3
我一直在关注versioning an API using Rails routing发布的优秀解决方案,但我一直运行到无限重定向。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