[英]How to configure ObjectMapper for Quarkus REST Client
我知道您可以實現ObjectMapperCustomizer
來為您的 Quarkus REST 服務配置映射器。 但是,Quarkus REST 客戶端的文檔中並不清楚它是否會使用相同的(全局?)映射器。 當外部服務的 JSON 命名約定與您自己的服務不同時,您如何處理這種情況? 我找不到為 REST 客戶端配置 ObjectMapper 的方法。 我假設您可以使用 Jackson 注釋來解決此問題,但我正在尋找一種僅通過配置 ObjectMapper 來解決此問題的方法。
所以,基本上,問題是:如何為一個特定的 REST 客戶端配置單獨的 ObjectMapper?
我遇到了同樣的問題。 通過大量的試驗和錯誤,我發現了以下作品:
首先,定義一個實現 JAX-RS ContextResolver 的 class:
public class ClientObjectMapper implements ContextResolver<ObjectMapper> {
@Override
public ObjectMapper getContext(Class<?> type) {
ObjectMapper om = new ObjectMapper();
om.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
om.setSerializationInclusion(JsonInclude.Include.NON_NULL);
om.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE);
return om;
}
}
然后在您的客戶端界面上只需添加@RegisterProvider(ClientObjectMapper.class)
從我到目前為止所做的測試來看,這將有效地產生與您使用 ClientBuilder 手動構建 HTTP 客戶端相同的效果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.