私は、REST API をバージョン管理するためのすべてのアプローチについて調べてきました。ほとんどすべての実装で、コントローラーとビューはバージョン管理されていますが、モデルはそうではありません。
レールの例を挙げると、コントローラーは次のように編成されます。
# app/controllers/api/v1/events_controller.rb
class Api::V1::EventsController < Api::ApiController
end
対応するビューも、異なるバージョンのディレクトリに配置されています。モデルをバージョン化しないのはなぜですか? API が進化しても、モデル (基礎となるデータベース スキーマ) が変わらないと期待しているからでしょうか? データベース内の列名の名前を変更し、それを説明する新しいモデルが必要な場合はどうなりますか?