2

公式の JSON メディア タイプはapplication/json. Jackson の RESTEasy プロバイダは、ResteasyJackson2Provider次のようにメディア タイプを指定します。

@Provider
@Consumes({"application/*+json", "text/json"})
@Produces({"application/*+json", "text/json"})
public class ResteasyJackson2Provider extends JacksonJaxbJsonProvider
…

理解できません。"application/*+json"私はそれが一致することを理解していapplication/foo+jsonます。application/jsonしかし、プラス+記号なしで一致しますか? それはJAX-RS仕様にありますか?JAX-RS メディア タイプのパターン マッチングがメディア タイプのサブコンポーネントのセマンティクスをある程度理解している場合を除き、これはワイルドカードが機能すると私が期待する方法とは一致しません。

4

1 に答える 1

0

JAX-RS 仕様には、メディア タイプ サフィックスについては何もありません。各プロバイダーの処理サフィックスは任意です。

3 つの JAX-RS 実装でカスタム プロバイダー (application/*+jsonメディア タイプを生成) をテストします。

  • application/jsonJersey (Jettison JSON プロバイダーを使用) - サービスが生成するメディア タイプを処理しない
  • RESTeasy (内部 JSON プロバイダー) - プロセス サービスは application/jsonメディア タイプを生成します
  • Apache CFX (内部 JSON プロバイダー) - プロセス サービスは application/jsonメディア タイプを生成します ( PARTIAL_HIERARCHICAL_MEDIA_SUBTYPE_CHECKプロパティがの場合true)

*+json私の推奨事項 -異なる JAX-RS 実装を使用する場合は、メディア タイプを信頼しないでください。明示的に追加しapplication/jsonます。

于 2016-11-27T22:57:46.633 に答える