Rails 2.3.14 と Ruby 1.8.7 を使用して実行しているプロジェクトがあります。http://railscasts.com/episodes/350-rest-api-versioningに示されているようなバージョン管理システムを RESTful API に実装したいと考えています。
これを 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 にルーティングされます)。
ありがとう、
サイモン