OpenFeign参数学习(三):返回类型之对象和列表

1.使用OpenFeign调用服务,并返回对象

a.被调用方

  //OpenFeign返回值类型
    //根据id查询用户相关信息
    @RequestMapping("/user/{id}")
    public User getUser(@PathVariable("id") Integer id){

        return new User(id, "朱丽娜", 8932.01);
    }

b.OpenFeign接口

 //OpenFeign返回值类型    根据id查询用户相关信息
    @RequestMapping("/user/{id}")
    public User getUser(@PathVariable("id") Integer id);

c.调用方

    //OpenFeign返回值类型   根据id查询,返回User
    @RequestMapping("/user/{id}")
    public User getUser(@PathVariable("id") Integer id){

        User user = userClient.getUser(id);
        return user;
    }

2.使用OpenFeign调用服务,并返回集合List 集合

a.被调用方

    //OpenFeign返回值类型
    //根据订单id查询商品列表
    @GetMapping("/orderUser/{id}")
    public List<User> orderUser(@PathVariable("id") Integer id){
        List<User> users = new ArrayList<>();
        users.add(new User(1001, "张三",8956.0));
        users.add(new User(1002, "王五",6545.0));
        users.add(new User(1003, "赵六",5632.0));

        return users;
    }

b.OpenFeign接口

    //OpenFeign返回值类型  根据订单id查询商品列表
    @GetMapping("/orderUser/{id}")
    public List<User> orderUser(@PathVariable("id") Integer id);

c.调用方

    //OpenFeign返回值类型  返回User列表
    @GetMapping("/orderUser/{id}")
    public List<User> orderUser(@PathVariable("id") Integer id){
        return userClient.orderUser(id);
    }

3.使用OpenFeign调用服务,并返回集合 Map集合

a.被调用方

       //根据订单id,返回map集合
    //参数 需要 当前页、展示数量、订单id
    @GetMapping("/pagingMap")
    public Map<String,Object> pagingMap(Integer page,Integer rows,Integer id){
        //分页查询符合订单id的用户,返回集合  List select * from user where id=? limit 0, 5
        //根据订单显示总的用户数量   select count(*) from user;
        Map<String, Object> map = new HashMap<>();
        List<User> users = new ArrayList<>();
        users.add(new User(1001, "哈密瓜", 2356.0));
        users.add(new User(1002, "冬瓜", 2356.0));
        users.add(new User(1003, "西瓜", 2356.0));
        users.add(new User(1004, "南瓜", 2356.0));
        users.add(new User(1005, "甜瓜", 2356.0));
        map.put("users", users);
        map.put("total", 100);

        return map;
    }

b.OpenFeign接口

    //根据订单id,返回map集合
    //参数 需要 当前页、展示数量、订单id
    @GetMapping("/pagingMap")
    public String pagingMap(@RequestParam("page") Integer page,@RequestParam("rows") Integer rows,@RequestParam("id") Integer id);

c.调用方

    //根据订单id,返回map集合
    //参数 需要 当前页、展示数量、订单id
    @GetMapping("/pagingMap")
    public String pagingMap(){
        String result = userClient.pagingMap(1, 5, 1);

        //自定义json反序列化  对象转为json为序列化    json转为对象为反序列化
        JSONObject object = JSONObject.parseObject(result);
        Integer total = (Integer) object.get("total");
        Object users = object.get("users");

        System.out.println("总数量是:"+total);

        //第二次转换
        List<User> userList = JSONObject.parseArray(users.toString(), User.class);
        for (User user : userList) {
            System.out.println(user);
        }

        return result;
    }

你可能感兴趣的:(OpenFeign参数学习(三):返回类型之对象和列表)