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;
}
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;
}