Spring Cloud之远程调用OpenFeign参数传递
作者:新绿MEHO
本文介绍了Spring Cloud中使用OpenFeign进行远程调用时,参数传递的不同方式,包括传递单个参数、多个参数、对象和JSON数据,感兴的朋友一起看看吧
OpenFeign参数传递
传递单个参数
服务提供方product-service
@RequestMapping("/product") @RestController public class ProductController { @Autowired private ProductService productService; @RequestMapping("/p1") public String p1(Integer id){ return "product-service 接收到参数, id:"+id; } }
Feign客户端
@FeignClient(value = "product-service",path = "/product") public interface ProductApi { @RequestMapping("/p1") String p1(@RequestParam("id") Integer id); }
远程调用方order-service
@RequestMapping("/feign") @RestController public class FeignController { @Autowired private ProductApi productApi; @RequestMapping("/o1") public String o1(Integer id){ return productApi.p1(id); } }
启动服务并访问
传递多个参数
服务提供方product-service
@RequestMapping("/product") @RestController public class ProductController { @Autowired private ProductService productService; @RequestMapping("/p2") public String p2(Integer id, String name){ return "product-service 接收到参数, id:"+id+",name:"+name; } }
Feign客户端
@FeignClient(value = "product-service",path = "/product") public interface ProductApi { @RequestMapping("/p2") String p2(@RequestParam("id") Integer id, @RequestParam("name") String name); }
远程调用方order-service
@RequestMapping("/feign") @RestController public class FeignController { @Autowired private ProductApi productApi; @RequestMapping("/o2") public String o2(Integer id, String name){ return productApi.p2(id,name); } }
启动服务并访问
传递对象
服务提供方product-service
@RequestMapping("/product") @RestController public class ProductController { @Autowired private ProductService productService; @RequestMapping("/p3") public String p3(ProductInfo productInfo){ return "product-service 接收到参数: productInfo"+productInfo.toString(); } }
Feign客户端
@FeignClient(value = "product-service",path = "/product") public interface ProductApi { @RequestMapping("/p3") String p3(@SpringQueryMap ProductInfo productInfo); }
远程调用方order-service
@RequestMapping("/feign") @RestController public class FeignController { @Autowired private ProductApi productApi; @RequestMapping("/o3") public String o3(){ ProductInfo productInfo = new ProductInfo(); productInfo.setId(45); productInfo.setProductName("T恤"); return productApi.p3(productInfo); } }
启动服务并访问
传递JSON
服务提供方product-service
@RequestMapping("/product") @RestController public class ProductController { @Autowired private ProductService productService; @RequestMapping("/p4") public String p4(@RequestBody ProductInfo productInfo){ return "product-service 接收到参数: productInfo"+productInfo.toString(); } }
Feign客户端
@FeignClient(value = "product-service",path = "/product") public interface ProductApi { @RequestMapping("/p4") String p4(@RequestBody ProductInfo productInfo); }
远程调用方order-service
@RequestMapping("/feign") @RestController public class FeignController { @Autowired private ProductApi productApi; @RequestMapping("/o4") public String o4(){ ProductInfo productInfo = new ProductInfo(); productInfo.setId(46); productInfo.setProductName("T恤46"); return productApi.p4(productInfo); } }
启动服务并访问
到此这篇关于Spring Cloud之远程调用OpenFeign参数传递的文章就介绍到这了,更多相关Spring Cloud OpenFeign参数传递内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- SpringCloud OpenFeign 参数传递和响应处理的详细步骤
- 解决SpringCloud Gateway采用OpenFeign远程调用失败的问题
- Spring Cloud OpenFeign 远程调用
- SpringCloud整合OpenFeign实现微服务间的通信
- SpringCloud OpenFeign 自定义响应解码器的问题记录
- SpringCloud OpenFeign超时控制示例详解
- Alibaba SpringCloud集成Nacos、openFeign实现负载均衡的解决方案
- springcloud引入spring-cloud-starter-openfeign失败的解决
- 完美解决SpringCloud-OpenFeign使用okhttp替换不生效问题
- SpringCloud OpenFeign Post请求400错误解决方案
- SpringCloud 服务负载均衡和调用 Ribbon、OpenFeign的方法