現在、ASP.NET Web API を使用して実装された RESTful API を設計しています。
非常に重要なポイントの 1 つは、下位互換性です。
クリーンで最新の設計を保証するために、実際の API コードには下位互換性を考慮しないようにしたいと考えています。
バージョン トランスレータの層を設けることで、これを解決することを考えました。
これらの各トランスレータは、ある特定のバージョン (vPrevious) の要求と応答を別の特定のバージョン (vCurrent) の要求と応答に変換する方法を知っています。
これらのトランスレータは簡単に積み重ねることができ、任意の数の古いバージョンとの下位互換性を確保できます。
これらの各トランスレータは、新しいプロパティのデフォルト値の設定やさまざまな操作の配列の実行など、あらゆる種類の処理を担当します。
DelegatingHandler
クライアントが使用したい API のバージョン番号を調べ、それに基づいてどのトランスレーターを使用するかを判断する を実装することを考えました。
ただし、実際にこれを実装する方法がわかりません。私が見ているように、実際には各トランスレータは、ルーティング テーブルとコントローラと共に、独自の本格的な ASP.NET Web API である必要があります。それは実際には受け入れられますが、トランスレータ コントローラはデータをチェーン内の次のコントローラにどのようにルーティングするのでしょうか?