使用swagger2搭建了一个RESTful API,但是,在页面*问路径中包含 {id}的接口时,后台接收不到参数值。
Cotroller中,方法如下:
@ApiOperation(value="获取用户详细信息", notes="注意别出错")
@ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "String")
@RequestMapping(value="/{id}", method=RequestMethod.GET)
public User getUser(@PathVariable String id) {
System.out.println(id);
return null;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
1,访问接口:
后台打印结果如下:
2,使用Postman访问该接口:
后台打印结果如下:
两者对比说明,在swagger页面*问该接口时,后台并没有接收到参数值“2”,而是把“{id}”当做参数值传到了后台。
解决办法如下:
在注解 @ApiImplicitParam中添加 paramType = “path”。
在swagger页面再次访问该接口,后台打印结果如下:
打印结果: