方案1:POST请求 + 注解
将ServiceB接口的请求方式改为POST,同时接受的参数前面加上@RequestBody注解,改正后的代码如下:
/**
* 设备查询
* @param equipmentQuery
* @return
*/
@PostMapping("/equipment")
PageResult<Equipment> page(@RequestBody EquipmentQuery equipmentQuery);
方案2:GET请求 + @SpringQueryMap注解
/**
* 设备查询
* @param equipmentQuery
* @return
*/
@PostMapping("/equipment")
PageResult<Equipment> page(@SpringQueryMap EquipmentQuery equipmentQuery);
使用方案2的时候一定要注意Spring Cloud的版本,2.1.x以下的不支持哦,只有2.1.x以上版本才能解析参数。
方案3:GET请求 + @RequestParam(“xxx”)注解
/**
* 设备详情
*
* @param id
* @return
*/
@GetMapping("/getById")
R<EquipmentVO> info(@RequestParam("id") Integer id);
需要注意的是:
1、spring cloud项目使用FeignClient的时候GET请求方式无法解析对象参数
2、spring cloud项目使用FeignClient的时候GET请求有时候也无法解析单个参数值