用@PostMapping替代@GetMapping实现查询API的配置疑问
解决@PostMapping查询用户接口的运行错误问题
先修正代码中的拼写错误
你的代码存在两处拼写错误,这是导致运行报错的直接原因:
- 实体类名
UerDto应为UserDto - 方法名
getUSerById应为getUserById
修正后的完整代码:
@PostMapping("/get/{userId}") public ResponseEntity<UserDto> getUserById(@PathVariable Integer userId){ return new ResponseEntity<UserDto>(userService.getUserById(userId), HttpStatus.OK); }
接口正常工作的参数与请求要求
- 路径参数:必须在请求URL的路径中传入
userId,比如请求地址为POST /你的基础路径/get/1001,其中1001就是目标用户的ID - 请求头设置:前端发起请求时需要携带
Accept: application/json请求头,明确告知服务器你期望接收JSON格式的响应 - 请求体:该接口无需传递请求体,用户ID已通过路径参数传递
额外提示
虽然技术上可以用@PostMapping实现查询功能,但REST规范中查询操作更推荐使用@GetMapping。如果坚持使用@PostMapping,确保前端的fetch请求使用POST方法,且URL包含正确的userId路径参数。
内容的提问来源于stack exchange,提问作者Avinash gupta
相关产品推荐
相关产品推荐

