feign调用接口参数可以为null吗_关于Feign在微服务间调用引用参数传递的问题

文章探讨了Feign在微服务间调用时如何处理接口参数,特别是当参数可以为null或者为引用类型时的解决方案。通过自定义Feign请求拦截器,实现了GET请求支持POJO传递以及多个引用类型参数的拆分处理。在拦截器中,将JSON串转换为查询参数,并在B端按照SpringMVC方式接收。
摘要由CSDN通过智能技术生成

Feign默认不支持GET方式传递POJO,也不支持传递多个引用类型的参数!本文就是解决这两个问题!

解决思路:

在微服务A端:将要传递的引用类型参数要么以body方式传递,要么以json串方式传递,在拦截器里解析json串拆分为更为详细的参数。

在微服务B端:按照SpringMVC支持写法去写,A端传来的请求参数自动映射到B端实体属性上!

解决问题的关键:是自定义Feign请求拦截器的实现

关键代码如下:

/**

* 处理Feign请求不支持Pojo的问题,以及参数为json串的转换处理!

*/

@AllArgsConstructor

@Configuration

public class FeignRequestInterceptor implements RequestInterceptor {

private ObjectMapper objectMapper;

@Override

public void apply(RequestTemplate template) {

if (template.method().equals("GET")) {

try {

Map> queries = new HashMap<>();

// 处理不带注解的参数解析

// feign 不支持 GET 方法传 POJO, json body转query

if (template.requestBody().asBytes() != nul

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值