1
私はいくつかのAPIを消費して更新するために使用しているクライアントアプリケーションを持っています。私はジャージージャージーとジャージー2.25.1を使用してカスタムコネクタ、基本的なセットアップだけです。実行時にJersey JacksonのMapper設定を更新します。
私はジャクソンとジャージーを使ってシリアル化しているPOJOを持っていますが、このPOJOは2つの方法でシリアル化する必要があります。まず、すべてのヌル値をシリアル化しながら含めます.2つ目はnullフィールドを無視して削除します。
これは、APIが変更されないようにAPIが動作する方法です(私のAPIではありません)。実行時にJersey Jackson Mapperを更新することができますか?あなたはContextResolver
を使用して、そこにObjectMapper
を設定することができ
Client client = ClientBuilder.newBuilder()
.register(JacksonFeature.class)
.build();
client.getJacksonObjectMapper().setSerializationInclusion(Include.NON_NULL);
クライアントの作成後にこれを行うことができますか?私は条件付きで実行時に意味ですか? – engma
いいえ、あなたが得ようとしているのは、モデルクラスごとです。シリアライズされるクラスは 'getContext'メソッドに渡されます。そして、あなたは条件付きでそこで使うマッパーを決定できますが、それは本当にそれです。それ以外の場合、マッパーは、そのような設定はスレッドセーフではないため、条件付きで構成することは実際には想定されていません。シナリオごとに異なるクライアントを作成するだけでよいでしょう。 –
ええ、私は別のクライアントを作成する必要があるようです@peeskillet – engma