swagger2 注解说明

swagger2 注解说明swagger2 注解整体说明 Api 用在请求的类上 表示对类的说明 tags amp quot 说明该类的作用 可以在 UI 界面上看到的注解 amp quot value amp quot 该参数没什么意义 在 UI 界面上也看到 所以不需要配置 amp quot ApiOperation 用在请求的方法上 说明方法的用途 作用 value amp a

1、maven依赖

<dependency> <groupId>io.springfox 
     groupId> <artifactId>springfox-swagger2 
      artifactId> <version>2.9.2 
       version>  
        dependency> <dependency> <groupId>io.springfox 
         groupId> <artifactId>springfox-swagger-ui 
          artifactId> <version>2.9.2 
           version>  
            dependency> <dependency> <groupId>com.github.xiaoymin 
             groupId> <artifactId>swagger-bootstrap-ui 
              artifactId> <version>1.9.6 
               version>  
                dependency> 

(注:当前2018年,请使用最新的依赖)

2、swagger2 注解整体说明

2.1、请求类的描述

注解 说明
@Api 对请求类的说明

2.2、方法和方法参数的描述

注解 说明
@ApiOperation 方法的说明
@ApiImplicitParams 方法参数的说明;
@ApiImplicitParam 用于指定单个参数的说明。

2.3、方法的响应状态的描述

注解 说明
@ApiResponses 方法返回值的说明 ;
@ApiResponse 用于指定单个参数的说明。

2.4、对象的描述

注解 说明
@ApiModel 用在JavaBean类上,说明JavaBean的 整体用途
@ApiModelProperty 用在JavaBean类的属性上面,说明此属性的的含议

3、请求类的描述

3.1、@Api:请求类的说明

@Api:放在 请求的类上。与 @Controller 并列,说明类的作用,如用户模块,订单类等。 tags="说明该类的作用" value="该参数没什么意义,所以不需要配置" 

3.2、示例:

@Api(tags="订单模块") @Controller public class OrderController { 
    } 

@Api 其它属性配置:

属性名称 备注
value url的路径值
tags 如果设置这个值、value的值会被覆盖
description 对api资源的描述
basePath 基本路径
position 如果配置多个Api 想改变显示的顺序位置
produces 如, “application/json, application/xml”
consumes 如, “application/json, application/xml”
protocols 协议类型,如: http, https, ws, wss.
authorizations 高级特性认证时配置
hidden 配置为true ,将在文档中隐藏

4、方法和方法参数的描述

4.1、@ApiOperation:方法的说明

@ApiOperation"用在请求的方法上,说明方法的作用" value="说明方法的作用" notes="方法的备注说明" 

4.2、@ApiImplicitParams、@ApiImplicitParam:方法参数的说明

@ApiImplicitParams:用在请求的方法上,包含一组参数说明 @ApiImplicitParam:对单个参数的说明 name:参数名 value:参数的说明、描述 required:参数是否必须必填 paramType:参数放在哪个地方 · query --> 请求参数的获取:@RequestParam · header --> 请求参数的获取:@RequestHeader · path(用于restful接口)--> 请求参数的获取:@PathVariable · body(请求体)--> @RequestBody User user · form(普通表单提交) dataType:参数类型,默认String,其它值dataType="Integer" defaultValue:参数的默认值 

4.3、示列:

@Api(tags="用户模块") @Controller public class UserController { 
    @ApiOperation(value="用户登录",notes="随边说点啥") @ApiImplicitParams({ 
    @ApiImplicitParam(name="mobile",value="手机号",required=true,paramType="form"), @ApiImplicitParam(name="password",value="密码",required=true,paramType="form"), @ApiImplicitParam(name="age",value="年龄",required=true,paramType="form",dataType="Integer") }) @PostMapping("/login") public JsonResult login(@RequestParam String mobile, @RequestParam String password, @RequestParam Integer age){ 
    //... return JsonResult.ok(map); } } 

5、响应状态的描述

5.1、@ApiResponses、@ApiResponse:响应状态状态的说明

@ApiResponses:响应状态的说明。是个数组,可包含多个 @ApiResponse @ApiResponse:每个参数的说明 code:数字,例如400 message:信息,例如"请求参数没填好" response:抛出异常的类 

5.2、 示例:

@Api(tags="用户模块") @Controller public class UserController { 
    @ApiOperation("获取用户信息") @ApiImplicitParams({ 
    @ApiImplicitParam(paramType="query", name="userId", dataType="String", required=true, value="用户Id") }) @ApiResponses({ 
    @ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对") }) @ResponseBody @RequestMapping("/list") public JsonResult list(@RequestParam String userId) { 
    ... return JsonResult.ok().put("page", pageUtil); } } 

6、对象的描述

6.1、@ApiModel:对象的整体说明

@ApiModel 经常用于请求的入参对象和 响应返回值对象的描述。

  1. 入参是对象,即 @RequestBody 时, 用于封装请求(包括数据的各种校验)数据;
  2. 返回值是对象,即 @ResponseBody 时,用于返回值对象的描述。
@ApiModel(description = "用户登录") public class UserLoginVO implements Serializable { 
    } 

6.2、@ApiModelProperty 对象中每个参数的说明

@ApiModelProperty 用于每个属性上面,说明属生的含义。

@ApiModel public class UserLoginVO implements Serializable { 
    @ApiModelProperty(value = "用户名",required=true) private String username; } 

6.3、示例:

1)入参是对象,即 @RequestBody 时, 用于封装请求

@ApiModel(description = "用户登录") public class UserLoginVO implements Serializable { 
    private static final long serialVersionUID = 1L; @ApiModelProperty(value = "用户名",required=true) private String username; @ApiModelProperty(value = "密码",required=true) private String password; // getter/setter省略 } 

2)返回值是对象,即 @ResponseBody 时,用于返回值对象的描述。

@ApiModel(description= "返回响应数据") public class JsonResult implements Serializable{ 
    @ApiModelProperty(value = "是否成功",required=true) private boolean success=true; @ApiModelProperty(value = "错误码") private Integer errCode; @ApiModelProperty(value = "提示信息") private String message; @ApiModelProperty(value = "数据") private Object data; /* getter/setter 略*/ } 

3) UserLoginVO 和 JsonResult 的使用

@Api(tags="用户模块") @Controller public class UserController { 
    @ApiOperation(value = "用户登录", notes = "") @ResponseBody @PostMapping(value = "/login") public JsonResult login(@RequestBody UserLoginVO userLoginVO) { 
    User user=userSerivce.login(userLoginVO); return new JsonResult("1","成功"); } } 

6.4、swagger2 中查看:

在这里插入图片描述

7、默认的地址

http://localhost:5680/zxmall/swagger-ui.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198476.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午3:08
下一篇 2026年3月26日 下午3:08


相关推荐

  • url加时间戳避免再次请求当前路径出现的缓存问题[通俗易懂]

    url加时间戳避免再次请求当前路径出现的缓存问题[通俗易懂]1.先解释一下,为什么要加时间戳: URL后面添加随机数通常用于防止客户端(浏览器)缓存页面。浏览器缓存是基于url进行缓存的,如果页面允许缓存,则在一定时间内(缓存时效时间前)再次访问相同的URL,浏览器就不会再次发送请求到服务器端,而是直接从缓存中获取指定资源。2.加时间戳的方法:[javascript] viewplain copy

    2022年5月1日
    224
  • RPC是什么意思?[通俗易懂]

    原文地址:http://baike.baidu.com/link?url=ZV6b0T5v04pem1NluXrFwslmhOosGK3YAeKYBfXHF3J-cg96O7CE9j_opGpKCftpBKWqLtY9-LycDAX0ULaLpssX4IIVmK6fSdtZBzz6nbFRsA-vXppB4IV1KBfDu07pY2dgZYTn5A65RkuhPO00bf5ngU6qfujFC14

    2022年4月4日
    138
  • findstr 命令详解

    findstr 命令详解和 Linux 相比 对于命令行操作 Windows 总是觉得有点力不从心 比如 有的时候我们想查找某些进程占用了哪些网络端口 有一些指定的网络端口又被哪些应用给占用 总是稍显有点麻烦 往往需要从一大串数据行中去目测 找出自己关心的一些信息 如果我们要从一大段数据行中 或者一大段文本中去找出我们所关心的一些数据行 Linux 下 grep 可以很轻松地搞定这个任务 但在 windows 下恐怕就没有那么容易了 当

    2026年3月19日
    2
  • 均方误差(mean-square error, MSE)「建议收藏」

    均方误差(mean-square error, MSE)「建议收藏」全参考图像质量评价的方法有:PSNR峰值信噪比;SSIM结构相似性;MSE均方误差;我们接下来介绍一下均方误差。SSE在统计学里,该参数计算的是拟合数据与原始数据对应点的误差的平方和,计算公式为:其中是真实数据,是拟合数据,&gt;0,从这里可以看出SSE越接近于0,说明模型选择和拟合更好。MSE(均方方差)该统计参数是预测数据和原始数据对应点误差的平方和的均值…

    2026年4月14日
    5
  • Android常用控件

    Android常用控件TextView显示文本<TextViewandroid:id="@+id/text_view"android:layout_width="match_pa

    2022年7月2日
    28
  • 关于引用mshtml的问题[通俗易懂]

    今天看了个验证码识别的代码,其中引用到了mshtml.dll,找了半天原来就是microsoft.mshtml.dll。查这个dll的时候还发现了好几篇关于这个dll添加问题的文章。顺便看了下,原来这个dll有三个,添加引用时要注意了。   第一篇文章:   1.添加引用的问题   一般在开发环境下会在三个地方存有microsoft.mshtml.dll文件。所以在添加引用时,也

    2022年4月6日
    94

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号