gpt4 book ai didi

java - 如何为 Quarkus REST 客户端配置 ObjectMapper

转载 作者:行者123 更新时间:2023-12-04 12:38:21 25 4
gpt4 key购买 nike

我知道你可以实现 ObjectMapperCustomizer为您的 Quarkus REST 服务配置映射器。但是,Quarkus REST Client 的文档中并不清楚它是否会使用相同的(全局?)映射器。当外部服务与您自己的服务具有不同的 JSON 命名约定时,您如何处理这种情况?我找不到为 REST 客户端配置 ObjectMapper 的方法。我假设您可能可以使用 Jackson 注释来解决这个问题,但我正在寻找一种方法来仅通过配置 ObjectMapper 来实现。

所以,基本上,问题是:如何配置 单独 一个对象映射器 具体 REST客户端?

最佳答案

我遇到了同样的问题。通过大量的反复试验,我发现了以下作品:
首先,定义一个实现 JAX-RS ContextResolver 的类:

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 客户端相同的效果。

关于java - 如何为 Quarkus REST 客户端配置 ObjectMapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61984336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com