feign调用多个服务_SpringCloud中Feign服务调用请求方式及参数总结(示例代码)
前言
最近做微服务架构的项目,在用feign来进行服务间的调用。在互调的过程中,难免出现问题,根据错误总结了一下,主要是请求方式的错误和接参数的错误造成的。在此进行一下总结记录。以下通过分为三种情况说明,无参数,单参数,多参数。每种情况再分get和post两种请求方式进行说明。这样的话,6种情况涵盖了feign调用的所有情况。
有个建议就是为了保证不必要的麻烦,在写feign接口的时候,与我们的映射方法保持绝对一致,同时请求方式,请求参数注解也都不偷懒的写上。如果遵循这种规范,可以避开90%的调用错误。
无参情况
无参情况就是说我们的方法内不接收参数。
Get请求
当我们只写RequestMapping,而不指定RequestMethod的时候。默认的method为一个get请求。
@RequestMapping("/noArgs/getDemo")
public void noArgsGetDemo();
Post请求
@RequestMapping(value = "/noArgs/postDemo",method = RequestMethod.POST)
public void noArgsPostDemo();
也可以直接使用PostMapping
@PostMapping(value = "/noArgs/postDemo")
public void noArgsPostDemo();
单个参数的情况
方法内只有一个参数
Get请求
get请求方式接参,只能使用RequestParam注解
@RequestMapping(value = "/singleArg/getDemo")
public void singleArgGetDemo(@RequestParam String name);
不写RequestMethod注解,默认就是get请求。
Post请求
post请求方式接参,可以使用三种方式,一种是不写,一种是RequestParam,一种是RequestBody。
RequestParam
先说说RequestParam这种方式。需要指明method,如果不指明则和上方一样了。默认是get。
@RequestMapping(value = "/singleArg/PostDemo",method = RequestMethod.POST)
public void singleArgPostDemo(@RequestParam String name);
RequestBody
一旦使用RequestBody这种方式,他就是post请求,不用写method了。
@RequestMapping(value = "/singleArg/PostDemo")
public void singleArgPostDemo(@RequestBody String name);
这个注解就很强势了,你写post,不写或者写get都没用,不会生效的,只要有这个方式那他就是Post请求了。
啥也不写
@RequestMapping(value = "/singleArg/PostDemo")
public void singleArgPostDemo(String name);
此时默认会在参数前加上RequestBody注解。然后就会变成Post请求。
多参
get请求
多个参数也是使用@RequestParam注解。
@RequestMapping(value = "/moreArgs/getDemo")
public void moreArgGetDemo(@RequestParam String name,@RequestParam String sex);
使用了RequestParam注解,默认method就是get。
post请求
多个参数只能有一个是requestBody方式,其他应该使用requestParam方式。
@RequestMapping(value = "/moreArgs/postDemo")
public void moreArgPostDemo(@RequestBody String name,@RequestParam String sex);
也可以全部使用RequestParam方式,但是要指定post。
@RequestMapping(value = "/moreArgs/postDemo",method = RequestMethod.POST)
public void moreArgPostDemo(@RequestParam String name,@RequestParam String sex);
如果要是参数前,都没写注解,则会报错,因为会默认加上两个RequestBody。
总结
至此feign的请求方式就说明白了。
feign调用多个服务_SpringCloud中Feign服务调用请求方式及参数总结(示例代码)相关推荐
- LIBSVM在MATLAB中的使用及SVM最优参数选取示例代码
1. 参考网站: LIBSVM 库下载:http://www.csie.ntu.edu.tw/~cjlin/libsvm/ https://www.csie.ntu.edu.tw/~cjlin/lib ...
- 如何实现微服务架构中的服务发现
为什么使用服务发现? 想象一下,如果你在写代码调用一个有REST API或Thrift API的服务,你的代码需要知道一个服务实例的网络地址(IP地址和端口).运行在物理硬件上的传统应用中,服务实例的 ...
- 如何实现微服务架构中的服务发现?
转载出处:如何实现微服务架构中的服务发现? 原文地址:Service Discovery in a Microservices Architecture 编者按:在『应用架构一团糟?如何将单体应用 ...
- python的命名空间_python中命名空间的三种方式介绍(附示例)
本篇文章给大家带来的内容是关于python中命名空间的三种方式介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. python中的命名空间分三种: 内置的命名空间,在启动解 ...
- JSP中get和post请求方式的区别及乱码解决方法
JSP中get和post请求方式的区别及乱码解决方法 get提交方式:默认method="get" 和 地址栏.超链接请求方式默认都属于get提交方式 form表单的method属 ...
- SpringCloud中Feign服务调用请求方式及参数总结
前言 最近做微服务架构的项目,在用feign来进行服务间的调用.在互调的过程中,难免出现问题,根据错误总结了一下,主要是请求方式的错误和接参数的错误造成的.在此进行一下总结记录.以下通过分为三种情况说 ...
- feign调用多个服务_SpringCloud使用Feign实现服务调用|chu
Spring Cloud Feign简介 Spring Cloud Feign也是一个基础工具类,它整合了Spring Cloud Ribbon和Spring Cloud Hystrix,除了提供这两 ...
- java时间提醒微服务器_springcloud中微服务的优雅停机(已验证)
大部分项目部署中,为了方便,可能都直接使用kill -9 服务的pid来停掉服务. 但是由于Eureka采用心跳的机制来上下线服务,会导致服务消费者调用此已经kill的服务提供者然后出错. 可以采用以 ...
- 微服务设计中关于服务组合和可视化编排的思考
这篇文章重新整理下我对服务组合和服务可视化编排的一些思考. 从整个服务分层的角度来说,微服务最底层首先提供的是原子服务,再朝上则可以提供更加粗颗粒度的组合服务能力. 为何要进行服务组合和编排? 简单来 ...
最新文章
- 五问智能教育未来发展:重点解决什么问题?
- 276.	Paint Fence
- 通过MULE集成服务的几种方式
- B - Average Numbers CodeForces - 134A(水题,思维)
- 结对编程作业---电梯调度程序
- php工场模式讲解,PHP设计模式之工厂模式详解
- Dart入门—开发环境
- 对话图灵奖得主、CNN之父Yann LeCun:我在中国看到了AI研究热潮
- 取消IE“已限制此网页运行可以访问计算机的脚本
- 杀手级的ASUS EEE 901GO?
- 极限学习机ELM原理与实现
- linux常识 菜鸟教程
- Android 安装包没有签名文件问题
- 用python批量处理图片尺寸
- Oracle实现递归查询
- Oulipo[字符串哈希]
- 我的世界服务器清道夫配置文件,清道夫环保网分享:废液焚烧炉烟气处理标准配置...
- 微信小程序把view居中_初识微信小程序
- 广东电信公话200专用话机话务动态分析系统的构建
- SDOI2014 Round1 day2
热门文章
- C语言之文件读写探究(七):随机读写文件
- C++之继承探究(二):protected成员
- 底部按钮吸附_知乎的药丸按钮(二)我的 iOS 实现
- python123测验答案测验3_知到app数学分析3-3测验答案查询服务
- python调用库实现返回ping的时延_python在windows下实现ping操作并接收返回信息
- java开发http协议接口_java开发接口利用http协议传输数据
- win10 mysql 远程访问_win10 docker部署mysql并启动远程连接
- oracle用游标drop多个表,Oracle Procedure中使用游标cursor更新多表?
- 生成html_用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告
- 汽车租赁php参考文献,国内外汽车租赁文献综述