0

ASP.NET WebAPI を使用して RESTful API を構築していますが、さまざまな API バージョンをサポートする必要があります。URL (api/v1/ スタイル) またはカスタム HTTP ヘッダーに基づいてコントローラーの選択を実装する方法を知っています。このようにして、さまざまな API バージョンのさまざまな名前空間にさまざまなコントローラーを配置します。しかし、考えなければならない別の問題があります。モデルが v1 と v2 の間で変更された場合はどうなりますか? v1 API がシリアル化された出力を変更しないようにするにはどうすればよいですか? Entity Framework Code First アプローチを使用しているため、モデルの変更は簡単に実装できますが、v1 API が壊れる可能性があります。各 API バージョンの一貫性を維持するための最善の方法は何ですか?

4

1 に答える 1

2

Entity Framework との関係がわかりません。EF モデルを直接シリアル化していないことを願っていますよね? もしそうなら、あなたは確かに問題を抱えています。

代わりにビュー モデルを使用する必要があります。これらのビュー モデルは、コントローラーのバージョン管理と同じ方法でバージョン管理できます。コントローラーのバージョンごとにビュー モデルが異なります。

このようにして、ワイヤ上でシリアル化されるものを完全に制御できます。これで、EF モデルを内部で好きなだけ変更できるようになりました。そしてある日、EF をドロップして (ブロックに新しい子供がいる可能性があるため)、まったく別のものに置き換えることを決定するかもしれません。この変更は、Web API と公開されるものにまったく反映されません。ビューモデルを公開しているという理由だけで外側。

于 2013-01-25T11:42:00.013 に答える