前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringCloud-Feign[请求参数处理]

SpringCloud-Feign[请求参数处理]

作者头像
用户4919348
发布2019-06-14 10:16:58
1.6K0
发布2019-06-14 10:16:58
举报
文章被收录于专栏:波波烤鸭波波烤鸭

在上篇文章的基础上我们来介绍下Feign的请求参数的问题

Feign参数处理

一、单个参数

  首先来看下单个参数的情况

1.service服务

  在service服务中我们增加一个接收单个参数的方法

代码语言:javascript
复制
@RequestMapping("/product")
public interface ProductService {

    /**
     * 查询所有商品的方法
     * @return
     */
    @GetMapping("/findAll")
    public List<Product> findAll();

    /**
     *  根据id查询商品信息
     *  Feign本身也是基于http请求的客户端
     *  在接收参数时我们需要通过@RequestParam注解来指明要接收的参数
     * @param id
     * @return
     */
    @GetMapping("/getProductById")
    public Product getProductById(@RequestParam("id") Integer id);
}

注意:记得重新打包更新

2.provider服务

  因为service服务的定义修改了,所以我们需要增加provider的服务,

代码语言:javascript
复制
/**
 * @program: springcloud-feign-product-provider
 * @description: 服务提供者的控制器
 * @author: 波波烤鸭
 * @create: 2019-06-07 09:44
 */
@RestController
public class ProductController implements ProductService{


    /**
     * 此处不用再添加@RequestMapping注解,重写的方法在接口中定义的有
     * @return
     */
    @Override
    public List<Product> findAll() {
        List<Product> list = new ArrayList<>();
        list.add(new Product(1, "电视"));
        list.add(new Product(2, "电脑"));
        list.add(new Product(3, "冰箱"));
        list.add(new Product(4, "洗衣机"));
        return list;
    }

    /**
     * 单个参数的处理
     * @param s
     * @return
     */
    @Override
    public Product getProductById(Integer id) {

        return new Product(id,"bobo烤鸭-feign");
    }
}

3.consumer服务

  消费者中直接通过feign调用服务即可。

代码语言:javascript
复制
/**
 * @program: springcloud-feign-prodcut-consumer
 * @description: 消费者提供服务
 * @author: 波波烤鸭
 * @create: 2019-06-07 10:47
 */
@RestController
public class ProductController {

    @Autowired
    ProductConsumerService consumerService;
    /**
     * Consumer 中的查询所有商品的方法
     * @return
     */
    @RequestMapping(value="/list",method= RequestMethod.GET)
    public List<Product> getAll(){
        return this.consumerService.findAll();
    }

    @RequestMapping(value="/get",method= RequestMethod.GET)
    public Product getProductById(@RequestParam("id") Integer id){
        return this.consumerService.getProductById(id);
    }
}

启动服务访问:

在这里插入图片描述
在这里插入图片描述

调用成功!

二、多个参数

1.GET方式

service服务

代码语言:javascript
复制
    /**
     * GET方式
     *     获取多个参数
     *     注意:GET方式 形参必须多个分开
     * @param id
     * @param name
     * @return
     */
    @GetMapping("/addProductGet")
    public Product addProductGet(@RequestParam("id") Integer id,@RequestParam("name") String name);

provider服务

代码语言:javascript
复制
@Override
public Product addProductGet(Integer id, String name) {
    return new Product(id,name);
}

consumer服务

代码语言:javascript
复制
 @RequestMapping(value="/get1",method= RequestMethod.GET)
 public Product addProductGet(Product product){
     return this.consumerService.addProductGet(product.getId(),product.getName());
 }
在这里插入图片描述
在这里插入图片描述

2.POST方式

service服务

代码语言:javascript
复制
/**
 *  Post方式
 *     获取多个参数:@RequestBody
 * @param product
 * @return
 */
@PostMapping("/addProductPost")
public Product addProductPost(@RequestBody  Product product);

provider服务

代码语言:javascript
复制
@Override
public Product addProductPost(@RequestBody  Product product) {
    return product;
}

consumer服务

代码语言:javascript
复制
@RequestMapping(value="/get2",method= RequestMethod.GET)
 public Product addProductPost(Product product){
     return this.consumerService.addProductPost(product);
 }
在这里插入图片描述
在这里插入图片描述

搞定~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在上篇文章的基础上我们来介绍下Feign的请求参数的问题
  • Feign参数处理
    • 一、单个参数
      • 1.service服务
      • 2.provider服务
      • 3.consumer服务
    • 二、多个参数
      • 1.GET方式
      • 2.POST方式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档