相关疑难解决方法(0)

API版本控制的最佳实践?

Web服务REST API版本控制是否有任何已知的方法或最佳实践?

我注意到AWS通过端点的URL进行版本控制.这是唯一的方法还是有其他方法来实现同一目标?如果有多种方式,每种方式的优点是什么?

versioning rest

877
推荐指数
7
解决办法
47万
查看次数

将路径中的所有路由重定向到另一路径,并保持URL的其余部分不变

我想在Rails应用程序中重命名资源,并将所有旧路由重定向到新路由,以便与旧链接向后兼容。例如,将“用户”重命名为“成员”,并将所有任意路由(例如example.com/user/1/posts/all?order=date重定向到)example.com/member/1/posts/all?order=date

如何设置routes.rb文件以将所有路径重定向到另一条路线,但在我要匹配的内容之后保留所有路径参数(包括url参数)?

它也应该工作,例如for example.com/user/no/real/path?foo=bar,它应该重定向到example.com/member/no/real/path?foo=bar

基本上我想将任何重定向pathpath.sub(/\A\/user/, '/member')

我签出了这个答案,但它似乎不适用于这些参数。

这是我到目前为止的解决方案,非常糟糕:

get 'user/*path', to: redirect{|params, request|
    path = params[:path].sub('/user', '/member')
    params = request.params.except(:path).map{|k,v| "#{k}=#{v}"}.join('&')
    if params.presence
      "#{path}?#{params}"
    else
      path
    end
  }
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rails-routing ruby-on-rails-4

6
推荐指数
1
解决办法
1781
查看次数