Spring中@PostMapping接口能否在POST请求URL中携带额外参数
问题解答
现有Spring接口代码如下:
@PostMapping("/test") public boolean test(@RequestBody String data) { //code and stuff }请问调用该POST接口时,是否支持在请求URL中携带额外参数?例如如下调用形式:
localhost:8080/test?username=username
结论:完全支持,上述调用形式可以正常访问接口。
具体说明如下:
- Spring MVC做接口路由匹配时,仅校验请求的路径部分(也就是
/test)是否匹配,URL末尾的查询参数不会影响匹配结果,携带额外查询参数的请求可以正常进入对应接口方法。 - 你当前的代码没有显式声明接收
username参数,仅代表方法内部无法获取该参数的值,Spring会自动忽略所有未通过@RequestParam声明接收的查询参数,不会抛出参数异常,接口原有逻辑完全不受影响。 - 如果你后续需要读取URL携带的查询参数,只需修改接口方法入参添加对应注解即可,示例如下:
@PostMapping("/test") public boolean test(@RequestBody String data, @RequestParam String username) { // 此处即可正常读取到username参数的取值 //code and stuff }
内容的提问来源于stack exchange,提问作者rainbowdog
相关产品推荐
相关产品推荐

