为了账号安全,请及时绑定邮箱和手机立即绑定

Spring Boot @RequestMapping 是否完全匹配请求?

Spring Boot @RequestMapping 是否完全匹配请求?

胡子哥哥 2021-06-28 09:59:35
我有一个 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);

}


查看完整回答
反对 回复 2021-07-14
  • 1 回答
  • 0 关注
  • 227 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信