Swagger的接收参数的注解问题

开心shishi刻刻 发布于 2016/08/31 13:18
阅读 75K+
收藏 1

Swagger 的请求参数如果是属性用@ApiParam注解,那如果是实体类用什么注解  

比如: 

public String addUser(@ApiParam(required = true, name = "postData", value 
= "用户信息json数据") @RequestParam( value = "postData") String postData, HttpServletRequest request)throws JSONException     {  
  
        JSONObject json = new JSONObject();        

        json.put("postData", postData);         

        return json.toString();     

}  

那如果我用来接收参数的是一个实体类(User)的话,该用什么注解 

public String addUser(User user, HttpServletRequest request)throws JSONException     {  
  
        JSONObject json = new JSONObject();        

        json.put("postData", user.getPostData);         

        return json.toString();     

加载中
0
无尽之州

加入@RequestBody注解

public String addUser(@ApiParam @RequestBody User user, HttpServletRequest request)

1
j
justkuai

controller的参数加 @ModelAttribute 注解即可

    public Ret<FileSimpleListRetDTO> simpleList(@Validated @ModelAttribute FileSimpleListDTO fileSimpleQueryDTO) {//..}

生成的api能够实现在线接口测试, 直接给你model里面的属性都展开了

angel
angel
哈哈,非常感謝,看到你的评论,我得问题得到的解决。
0
F
F_GSong

如果是GET方法中用User对象来接收多个请求参数的话,在Swagger的配置类中加上


.ignoredParameterTypes(User.class)


然后在controller的方法上用

@ApiImplicitParams和@ApiImplicitParam



0
Kevin_Zhan
Kevin_Zhan
问一下 假设我的接口返回很多参数需要加上注释用什么注解呢?比如有 name,age,sex,然后这些参数需要给前端展示具体的含义怎么搞?
0
zzuqiang
zzuqiang
没有看明白你的问题,但是你标记的最佳答案也不太理解
h
hotinly
你好,知道如何修改swagger生成的参数的默认值吗?
0
wyx_713
wyx_713

引用来自“F_GSong”的评论

如果是GET方法中用User对象来接收多个请求参数的话,在Swagger的配置类中加上


.ignoredParameterTypes(User.class)


然后在controller的方法上用

@ApiImplicitParams和@ApiImplicitParam



你好,我配置了ignoredParameterTypes(User.class),没有起作用。请问你这边是如何配置的,能否共享下你的例子,谢谢。
update方法:
@ResponseBody
@RequestMapping(value = "update", method = RequestMethod.GET)
public Result<String> update(@RequestBody User user) {
String u = findUser(user);
System.out.println(u);
return null;
}
HelloClay
HelloClay
非常好,后台用自定义Bean+@RequestBody去接受json,如果不加.ignoredParameterTypes(自定义Bean.class);在swagger页面会有两个参数输入框
h
hotinly
你好,这个问题你是怎么解决的?
0
李又又1

在类里面 属性加上:

    @ApiModelProperty(value = "数据模型ID", required = false)
    private String modelId;

 

青丘小狐
你傻逼啊,他说的是API
h
hotinly
接收参数和swagger貌似没什么关系吧,在没集成swagger之前不也可以接收吗?我现在想修改swagger生成参数的默认值,知道怎么做吗?
0
专洗尿戒子的程序猿

 .ignoredParameterTypes(ApiIgnore.class);

@ApiIgnore Employee employee

最主要是这句,我的可以运行,没问题。

 

new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo)
        .select()
        .apis(RequestHandlerSelectors.basePackage("com"))
        .paths(PathSelectors.any())
        .build()
        .ignoredParameterTypes(ApiIgnore.class);

 

@ApiOperation(value = "更新员工信息", notes = "更新员工信息", response = SwaggerSimpleResultConstant.class)
@ApiImplicitParams({
    @ApiImplicitParam(name = "id", value = "主键ID", required = true, paramType = "path"),
    @ApiImplicitParam(name = "name", value = "姓名", required = true, paramType = "query")})
@RequestMapping(value = "/{id}", method = { RequestMethod.PUT })
public Map<ControllerResultConstant, Object> edit(@ApiIgnore Employee employee) {

 

 

 

0
大秦隐士-开源中国
大秦隐士-开源中国

封装参数的对象的某些属性是必填的,如何使用swagger注解注释类里面的属性,而且该类可被多个方法使用,不同方法使用的必填的属性是不同的

yuncia
yuncia
同求,现在也在找解决方案,有对应解决方案吗
烧水不忘挖井人
烧水不忘挖井人
是的,有解决方案吗
z
z念夏
我也碰到这个问题,找到解决办法了吗
返回顶部
顶部