SpringCloud中的Feign远程调用接口传参失败问题

 更新时间:2022年03月16日 10:28:17   作者:hidecode  
这篇文章主要介绍了SpringCloud中的Feign远程调用接口传参失败问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Feign远程调用接口传参失败

我在做一个微服务调用的时候出现了被调接口传参失败问题

Feign是通过http协议调用服务的,后来发现是因为Gep和Maping不一致,还有使用feign时要记得给实体类加无参构造注解

同时这些注解都尽量一致,不然微服务调bug很麻烦。

这是调用者

这是feign的client

这是被调者

Feign远程调用的注意点

在使用feign的过程中遇到了一些问题,所以在这里做以下总结:

定义的做远程调用的api接口

中的方法参数列表中的参数都必须都要打上@RequestParam(“value”) 注解**,否则调用会报405异常,这一点是和controller中不一样的,controller中的方法只要参数名和前台传入的参数键名对应上就能自动绑定上参数

复杂类型用必须打上@RequestBody注解

service微服务中的Controller的参数绑定

如果参数列表中有复杂类型,请使用Post请求,使用Get请求会报Bad Request错误,且需要打上@RequestBody注解,而普通基本类型可以不用打上@RequestParam注解可自动绑定参数

如有其它问题,也欢迎补充,放一下代码:

api:

@FeignClient("MS-ADMIN-SERVICE")
public interface FixFeignService {
    @GetMapping("/fix")
    public List<FixInfo> findAll();
    @PostMapping("/fix/add")
    public int insert(@RequestBody FixInfo fixInfo);
    @PostMapping("/fix/limitByParam")
    public LayUIPageBean limitByParam(@RequestBody FixInfo fixInfo, @RequestParam("page") Integer page, @RequestParam("limit") Integer limit);
    @PostMapping("/fix/delByIds")
    public boolean delByIds(@RequestParam("ids[]") Long[] ids);
    @GetMapping("/fix/findById")
    public FixInfo findById(@RequestParam("id") Long id);
    @PostMapping("/fix/update")
    boolean update(@RequestBody FixInfo fixInfo);
}

service微服务

@RestController
@RequestMapping("/fix")
@Slf4j
public class FixInfoController {
    @Autowired
    private FixInfoService fixInfoService;
    @GetMapping("")
    public List<FixInfo> findAll(){
        List<FixInfo> all = fixInfoService.findAll();
        return all;
    }
    @PostMapping("/add")
    public int insert(@RequestBody FixInfo fixInfo){
        return fixInfoService.insert(fixInfo);
    }
    @PostMapping("/limitByParam")
    public LayUIPageBean limitByParam(@RequestBody FixInfo fixInfo,Integer page,Integer limit){
        LayUIPageBean layUIPageBean = new LayUIPageBean();
        PageHelper.startPage(page,limit);
        List<FixInfo> all = fixInfoService.findByParam(fixInfo);
        PageInfo<FixInfo> pageInfo = new PageInfo<>(all);
        return layUIPageBean.setCount((int)pageInfo.getTotal()).setData(pageInfo.getList());
    }
    @PostMapping("/delByIds")
    public boolean delByIds(@RequestParam("ids[]") Long[] ids){
        //log.info("id"+ids[0]);
        boolean flag= fixInfoService.delByIds(ids);
        return flag;
    }
    @GetMapping("/findById")
    public FixInfo findById(Long id){
        return fixInfoService.findById(id);
    }
    @PostMapping("/update")
    public boolean update(@RequestBody FixInfo fixInfo){
       return fixInfoService.update(fixInfo);
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Hibernate使用hbm.xml配置映射关系解析

    Hibernate使用hbm.xml配置映射关系解析

    这篇文章主要介绍了Hibernate使用hbm.xml配置映射关系解析,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Java多线程编程小实例模拟停车场系统

    Java多线程编程小实例模拟停车场系统

    这是一个关于Java多线程编程的例子,用多线程的思想模拟停车场管理系统,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • Java BeanUtils工具类常用方法讲解

    Java BeanUtils工具类常用方法讲解

    这篇文章主要介绍了Java BeanUtils工具类常用方法讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Spring Date jpa 获取最新一条数据的实例代码

    Spring Date jpa 获取最新一条数据的实例代码

    这篇文章主要介绍了Spring Date jpa 获取最新一条数据的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Java接口回调的本质详解

    Java接口回调的本质详解

    大家好,本篇文章主要讲的是Java接口回调的本质详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • 关于idea刚打开时疯狂报错的问题

    关于idea刚打开时疯狂报错的问题

    这篇文章主要介绍了关于idea刚打开时疯狂报错的问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • feign 如何获取请求真实目的ip地址

    feign 如何获取请求真实目的ip地址

    这篇文章主要介绍了feign 获取请求真实目的ip地址操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java对数器的使用讲解

    Java对数器的使用讲解

    今天小编就为大家分享一篇关于Java对数器的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Java实现英文猜词游戏的示例代码

    Java实现英文猜词游戏的示例代码

    这篇文章主要介绍了如何用Java编写一个英文猜词游戏,可以用来背英语单词。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-02-02
  • 教你实现Java接口防刷

    教你实现Java接口防刷

    有些人会恶意提交,本文主要介绍了教你实现Java接口防刷,通过在一定时间内限制同一用户对同一个接口的请求次数,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05

最新评论