我最近在我的API项目上实现了版本控制。现在,我的api的URL必须以序列开头/v1/
(如我目前在v1上)
我不想中断旧的呼叫,因此为了确保透明的兼容性,我想重写旧的url。
网址之类的/events/9999/attendees
应重定向到/v1/events/9999/attendees
我routes.rb
使用以下代码在Rails路由配置文件中进行了设置:
match "*path", :to => redirect("/#{API_CONFIG['current_version']}/%{path}"),
:constraints => lambda { |request| true }
我现在面临的问题是,最终重写的路由似乎是经过url编码的……(或其他某种方式)实际上, %{path}
那似乎已被破坏了。然后 :
/events/9999/attendees
重定向到 /v1/events%2F9999%2Fattendees
我究竟做错了什么 ?
非常感谢
您可以将一个块传递redirect
给以指定正确的网址
match "*path", :to => redirect {|params, request| "/v1/#{params[:path]}"}, :constraints => lambda { |request| true }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句