如何使用Jackson对Feign HTTP GET请求参数进行编码



我对Feign很陌生。我的目标是通过HTTP使用Jackson编码器/解码器在客户端之间进行通信。为了实现这一点,我使用了以下配置:

@Configuration
protected static class JacksonFeignConfiguration {
@Bean
public Decoder feignDecoder() {
return new JacksonDecoder();
}
@Bean
public Encoder feignEncoder() {
return new JacksonEncoder();
}

}

虽然这似乎是为了格式化请求体,但它并不格式化请求参数(使用@RequestParam(。这些是使用toString((方法意外创建的,该方法格式不正确。

如何确保请求参数也使用Jackson进行格式化。这是关键,因为我需要在GET请求中包含一个筛选条件对象列表。

目前,我已经解决了这个问题,将filter criteria对象更改为string((方法以返回JSON字符串,并编写了一个匹配的参数解析器来解码该字符串。

这是唯一的方法还是可以通过配置实现自动化?

需要在FeignClient接口中设置此配置类。

@FeignClient(value = "client", configuration = JacksonFeignConfiguration.class)
public interface YourClient{
//Your mappings
}

最新更新