记录工作中遇到的开发问题,而不是写博客凑字数。
1、通过本服务调用另外一个服务,需要定义一个接口,并用@FeignClient 注解进行注解
value = "服务名" 要调用的服务名
服务得到路径,对应的是controller的请求路径。
/tmpUser/updateUserNickName
- @FeignClient(value = "服务名")
- public interface BlockChainClient {
-
- @PostMapping("/tmpUser/updateUserNickName")
- ResponseData
updateUserNickName(@RequestBody Map params) ; - }
需要调用的服务的controller
- @Slf4j
- @RestController
- @RequestMapping("tmpUser")
- public class UserTmpController {
-
-
- @Autowired
- private UserService userService;
-
- @ApiOperation(value = "更新用户昵称", notes = "更新用户昵称")
- @PostMapping("updateUserNickName")
- public ResponseData
updateUserNickName(@RequestBody Map param) { - try {
- String phone = "";
- String nickName="";
- if(param.containsKey("phone")) {
- phone = param.get("phone").toString();
-
- }
-
- if(param.containsKey("nickName")) {
- nickName = param.get("nickName").toString();
-
- }
- if(!StringUtils.isEmpty(phone) && !StringUtils.isEmpty(nickName)) {
-
- userService.updateUserNickName(phone, nickName);
- }
-
- return ResponseData.success();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return ResponseData.error();
- }
-
- }
2.遇到的问题:
定义的接口传的参数类型需要和接口的参数类型一致,包括注解,否则报400错误。
比如接口是:@RequestBody 而 服务的controller是@RequestParam 就会包400错误、