我有一个 Spring Boot API,它有提供分页的端点。@RequestMapping(path = "/most-popular", method = GET)@Overridepublic List<RefinedAlbum> getMostPopularDefault() { return albumService.getMostPopular(0, 25);}@RequestMapping(path = "/most-popular?offset={offset}&limit={limit}", method = GET)@Overridepublic List<RefinedAlbum> getMostPopular(@PathVariable("limit") int limit, @PathVariable("offset") int offset) { inputValidation(limit, offset); return albumService.getMostPopular(limit, offset);}但是当我向服务提出请求时:http://localhost:5250/api/v1/albums/most-popular?offset=100&limit=125第一个函数被调用。我的理解是应该先进行精确匹配。那不正确吗?
1 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
?以下 URL 中的之后的内容不能使用@PathVariable注释绑定:
http://localhost:5250/api/v1/albums/most-popular?offset=100&limit=125
您的路径只是http://localhost:5250/api/v1/albums/most-popular,之后的内容由两个请求参数组成,即。offset和limit。您可以使用@RequestParam注解将请求参数绑定到控制器中的方法参数:
@RequestMapping(path = "/most-popular", method = GET)
@Override
public List<RefinedAlbum> getMostPopular (@RequestParam("limit") int limit,
@RequestParam("offset") int offset) {
inputValidation(limit, offset);
return albumService.getMostPopular(limit, offset);
}
添加回答
举报
0/150
提交
取消