Swagger的接收参数的注解问题

发布于 2021-12-08 06:02:49 字数 1436 浏览 825 评论 19

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();     

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(19

灵芸 2021-12-08 14:07:50

我也碰到这个问题,找到解决办法了吗

樱花落人离去 2021-12-08 14:07:47

同求,现在也在找解决方案,有对应解决方案吗

平定天下 2021-12-08 14:07:47

是的,有解决方案吗

策马西风 2021-12-08 14:07:46

回复
请问找到解决办法了吗?如果属性都是平级的还好解决,但是我们好多请求是需要嵌套属性的,一个对象包含一个对象,这样该怎样忽略不需要的属性呢

想挽留 2021-12-08 14:07:44

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

睫毛上残留的泪 2021-12-08 14:07:41

 .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) {

 

 

 

勿忘初心 2021-12-08 14:07:40

接收参数和swagger貌似没什么关系吧,在没集成swagger之前不也可以接收吗?我现在想修改swagger生成参数的默认值,知道怎么做吗?

终止放荡 2021-12-08 14:07:21

在类里面 属性加上:

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

 

辞别 2021-12-08 14:07:14

你好,这个问题你是怎么解决的?

柳絮泡泡 2021-12-08 14:07:02

非常好,后台用自定义Bean+@RequestBody去接受json,如果不加.ignoredParameterTypes(自定义Bean.class);在swagger页面会有两个参数输入框

旧伤慢歌 2021-12-08 14:06:59

引用来自“F_GSong”的评论

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

.ignoredParameterTypes(User.class)

然后在controller的方法上用

@ApiImplicitParams和@ApiImplicitParam

归属感 2021-12-08 14:06:41

你好,知道如何修改swagger生成的参数的默认值吗?

心舞飞扬 2021-12-08 14:00:26

没有看明白你的问题,但是你标记的最佳答案也不太理解

简单气质女生网名 2021-12-08 13:59:20

问一下 假设我的接口返回很多参数需要加上注释用什么注解呢?比如有 name,age,sex,然后这些参数需要给前端展示具体的含义怎么搞?

悟红尘 2021-12-08 13:39:41

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

眼眸里的那抹悲凉 2021-12-08 13:28:56

感谢,虽然和问题不太相干,却正好解决了我的问题

剑心龙吟 2021-12-08 09:42:24

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

.ignoredParameterTypes(User.class)

然后在controller的方法上用

@ApiImplicitParams和@ApiImplicitParam

你曾走过我的故事 2021-12-08 08:35:54

加入@RequestBody注解

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文