Je suivais l'excellente solution affichée ici concernant versionner une API à l'aide du routage Rails mais je me heurte toujours à une redirection infinie.
Voici une partie de mon 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
qui est pratiquement la même que la réponse affichée. Accès à /api/v1/books/list.json
fonctionne comme prévu, tout comme api/v2/books/list.json
. Le problème que je rencontre est le suivant /api/books/list.json
qui devrait rediriger vers /api/v1/books/list.json
. Si j'essaie d'accéder à l'api sans spécifier la version, mon navigateur répond par une redirection infinie. Mes journaux ressemblent à ceci :
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