2

クライアント側から出力フォーマットを制御する方法はありますか?

私はクラスを持っています

@Produces(MediaType.TEXT_HTML)

クライアントが要求したときにjsonを生成するようにします。

@Pathアノテーションと@Producesアノテーションのみを置き換えて、クラスを逐語的にコピーできますが、これはまったくの無駄のように見えます。

クライアントがURLに&content-type = application / jsonのようなものを追加して、サーバーにhtmlではなくjsonで応答させることができるかどうか疑問に思います。

4

1 に答える 1

9

HTMLとJSONの両方を提供するものとしてリソースに注釈を付ける必要があります。

@Produces({MediaType.TEXT_HTML, MediaType.APPLICATION_JSON})

次にMessageBodyWriter、メソッドの戻り型を処理するための実装が登録されていることを確認してください。DropwizardJacksonMessageBodyProviderはJSONを処理する必要があります。Dropwizardビューを使用している場合はViewMessageBodyWriter、残りを処理する必要があります。application/jsonクライアントがリクエストのAcceptヘッダーにある場合、Jerseyはクライアントとのコンテンツネゴシエーションを行います。

于 2012-07-24T19:03:09.917 に答える