現在、Windows Azure に展開される新しいプロジェクトの開発段階にあります。この製品は、新しい ASP.NET MVC Web API を使用してパブリックにアクセスできる Web API になります。私たちがやらなければならないことは、時間の経過とともに API の複数のバージョンをサポートすることです。For instance when we deploy it will be version 1. このバージョン番号は、契約が強制的に変更されない限り変更されるべきではありません。つまり、バージョン 1 の場合、次のようなサービス ルートがあります。
/v1/user/{id}
また、GET/POST をサポートし、POST の場合は Name の値をサポートします。おそらくバージョン 2 では、POST が受け入れるものを変更したいので、Name を FullName に変更し、FirstName と LastName もサポートするようにしました。
これにより、バージョン 1 とその方法を使用しているすべての人に問題が生じます。新しい変更を加えると、それらの機能が壊れます。
そのため、サービスのバージョン管理サポートを追加する機能が必要です
/v1/user/{id}
引き続き動作し、古いライブラリなどにヒットします。また、バージョン 2 を並行して展開するため、消費者は使用するライブラリに移行できます。
/v2/user/{id}
古いものをゆっくりとフェードアウトさせながら。
つまり、簡単に言えば、さまざまなルート/コントラクト、さまざまなコア ライブラリなどで構成される Windows Azure で、Web サービスの複数のバージョンを並べてホストできるようにしたいと考えています。これを行う方法を知っている人はいますか?