很多同学在调试接口时,会遇到这个问题,到处找原因,其实这个是接口匹配问题,请往下看。
项目环境
项目使用Spring Boot 3.x, JDK 17, Mybatis。
问题描述
在用ApiFox进行接口调试时,明明是Get请求,后台也是Get请求。
后台接口定义如下:
@RestController
@RequestMapping("/api/approval-chains")
public class ApprovalChainController {
@Autowired
private ApprovalChainService approvalChainService;
@GetMapping("/{id}")
public ApprovalChainDTO getApprovalChain(@PathVariable Long id) {
return approvalChainService.getApprovalChain(id);
}
}
但是Spring就是会报“Request method ‘GET’ is not supported”。查了很多解决方案都不行,其实很简单
解决办法
仔细看请求链接:
http://localhost:8080/api/approval-chains?id=1
它其实是Param的形式,但是后台接口定义:
@RequestMapping("/api/approval-chains")
@GetMapping("/{id}") // 这里省略其他
接口其实是需要这样一个请求:
http://localhost:8080/api/approval-chains/1
所以,看清楚了吧,不论改哪边都行。
我的解决办法 :
@GetMapping
public ApprovalChainDTO getApprovalChain(@RequestParam(value = "id") Long id) {
return approvalChainService.getApprovalChain(id);
}
谢谢~~