2

我有一个使用 Rails 2.3.14 和 Ruby 1.8.7 运行的项目。我想为我们的 RESTful API 实现一个版本控制系统,类似于http://railscasts.com/episodes/350-rest-api-versioning中显示的内容。

我发现将其转换为 Rails 2.x 项目有些困难。特别是,用于设置路由的具有约束和默认值的作用域模块:

namespace :api, defaults: {format: 'json'} do
  scope module: :v1, constraints: ApiConstraints.new(version: 1) do
    resources :products
  end
  scope module: :v2, constraints: ApiConstraints.new(version: 2, default: true) do
    resources :products
  end
end

我可以做些什么来在 Rails 2 中获得相同的行为吗?理想情况下,这会将版本控制信息保留在标头中,但我也可以使用在 url (../api/v1/...) 中维护的解决方案,只要排除版本号也可以路由到默认版本。例如,如果 API 是版本 2,那么 /api/users 应该路由到与 /api/v2/users 相同的位置,同时仍然允许通过指定版本来访问旧版本(即 /api/v1/用户仍然路由到 API 的版本 1)。

谢谢,

西蒙

4

0 回答 0