使用@modelAttribute接收的参数,如何在swagger文档中映射成paramType为body

1,post请求中使用@modelAttribute接收参数,在swagger-ui文档中paramterType 是query,我想要得到body类型的

2,代码

@ApiModel("用户描述")
public class User {

@ApiModelProperty(value="用户名称",required=true)  
private String name;  
@ApiModelProperty(value="用户年龄",required=true)  
private Integer age;  

public String getName() {  
    return name;  
}  

public void setName(String name) {  
    this.name = name;  
}  

public Integer getAge() {  
    return age;  
}  

public void setAge(Integer age) {  
    this.age = age;  
}  

@Override  
public String toString() {  
    return "User [name=" + name + ", age=" + age + "]";  
}  

}

@ApiOperation(value = "GET BODY更新数据")

@RequestMapping(value = "model/{id}", method = RequestMethod.GET)  
public ResponseEntity<ModelMap> modelResource(@ApiParam(value="用户",required=true) @ModelAttribute User user,   
        @ApiParam(name = "id", value = "编号", required = true) @PathVariable String id){  
    System.out.println(user);  
    ModelMap modelMap = new ModelMap();  
    modelMap.put("status", HttpStatus.OK.value());  
    modelMap.put("timestamps",System.currentTimeMillis());  
    modelMap.put("msg", HttpStatus.OK.getReasonPhrase());  
    modelMap.put("user", user);  
    modelMap.put("apiversion", 2);  
    return ResponseEntity.status(HttpStatus.OK).body(modelMap);  
}  

效果
clipboard.png

想要的效果

clipboard.png

不想改变@modelAttribute注解,而得到body类型的参数

阅读 16.5k
1 个回答

@ModelAttribute User user 换成@RequestBody User user

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题