0

私は api verioning を試していますが、非常に特殊な要件に対処する必要があります。これにはコンテンツ ネゴシエーション、つまり @Produces アノテーションを使用します。@Produces({"th/v1-v10+xml"}) のような形式のカスタム メディア タイプが必要です。v1-v10 は、この API 「th/v1+xml」、「th/v2+xml」から「th/v10+xml」までのAcceptヘッダーを持つすべてのリクエストを処理します。

これが少し奇妙であることは承知していますが、本番環境で作成する各ドロップはクライアントの新しいバージョンになりますが、すべてのサービスが変更されるわけではありません。そのため、変更されていなくてもドロップごとにサービスを複製する必要がないように、範囲でサービスに注釈を付けたいと考えています。

だから私が知りたいのは、 @Path および @Produces アノテーションと一致している間にジャージーでログインを傍受できる方法はありますか? 正規表現を使用してメディア タイプを照合できないことはわかっています。

.......

もう少し調査すると、Jersey は MediaType.isCompatible(MediaType other) メソッドを呼び出して、要求の受け入れヘッダーとサービス プロバイダーのメディア タイプの間の互換性を判断することがわかりました。

カスタム MediaType を作成して isCompatible メソッドをオーバーライドできれば、これを少し活用できるかもしれません。ジャージーはそのような延長を許可しますか??

どんな助けでも大歓迎です。

4

1 に答える 1