HTTP リクエスト ヘッダーを使用してバージョン管理された REST API が必要です。
GET /someResource
バージョン: 1.0
このリソースの 2 つのバージョンがある場合、私の JaxRS Web アプリケーションは、要求されたバージョンのいずれかに適切な応答を提供できる必要があります。そのため、次のクラスがクラスパスの一部であることが期待されます。
@Path("/someResource")
public class SomeResourceV1 {
**snip**
}
と
@Path("/someResource")
public class SomeResourceV2 {
**snip**
}
ここで、Version ヘッダーに応じて、これらのリソース クラスのいずれかにリクエストをディスパッチしたいと思います。これは、サーブレットフィルターを使用して行われると思います。しかし、私は Guice を使用しているので、探しているのは要求ごとのインジェクターだと思います。
リクエストがバージョン 1.0 の場合、SomeResourceV1 のバインディングでインジェクターを使用します。それ以外の場合、リクエストがバージョン 2.0 の場合、SomeResourceV2 のバインディングでインジェクターを使用します
GuiceFilter をサブクラス化することで、必要なものを取得する方法があると思いますが、完全にはわかりません。誰かが前にこのようなことを試したことがありますか?