​
|    **作用范围**    |      **API**       |                       **API常用参数**                        |         **作用位置**         |
| :----------------: | :----------------: | :----------------------------------------------------------: | :--------------------------: |
|     协议集描述     |        @Api        |              @Api(tags = {"tag1","tag2","..."})              |         controller类         |
|      协议描述      |   @ApiOperation    |       @ApiOperation(value = "功能描述",notes = "备注")       |      controller类的方法      |
| 描述返回对象的意义 |     @ApiModel      |         @ApiModel(value="类名",description="类描述")         |          返回对象类          |
|      对象属性      | @ApiModelProperty  | @ApiModelProperty(value = "类属性描述",required = *true*,example = "属性举例",notes = "备注") |      出入参数对象的字段      |
|    非对象参数集    | @ApiImplicitParams | @ApiImplicitParams({@ApiImplicitParam(),@ApiImplicitParam(),...}) |       controller的方法       |
|   非对象参数描述   | @ApiImplicitParam  | @ApiImplicitParam(name = "参数名",value = "参数描述",required = *true*,paramType = "接口传参类型",dataType = "参数数据类型") | @ApiImplicitParams的方法里用 |
|     Response集     |   @ApiResponses    |    @ApiResponses({     @ApiResponse(),@ApiResponse(),..})    |       controller的方法       |
|      Response      |    @ApiResponse    |       @ApiResponse(code = 10001, message = "返回信息")       |      @ApiResponses里用       |
|      忽略注解      |     @ApiIgnore     |                          @ApiIgnore                          |      类,方法,方法参数      |

API使用详细说明

@Api

作用:用来指定接口的描述文字
修饰范围:作用在类上

@Api(tags = "TestController测试")
@RestController
public class TestController {....
}

@ApiOperation

作用:用来对接口中具体方法做描述
修饰范围:作用在方法上

@ApiOperation(value = "接口总体描述",notes = "<span style='color:red;'>详细描述:</span>&nbsp;方法详细描述信息")
@GetMapping("/")
public String login(String... index) {return "Hello login ~";
}

value:用来对接口的总体描述
notes:用来对接口的详细描述

@ApiImplicitParams

作用:用来对接口中参数进行说明
修饰范围:作用在方法上
参数:@ApiImplicitParam数组

@ApiImplicitParam

作用:修饰接口方法里面的参
修饰范围:作用方法上
参数

  • name:方法参数名称
  • value:方法参数的描述
  • dataType:方法参数数据类型
  • defaultValue :方法参数默认值(给测试人员做测试用的)
  • paramType :
    • 默认query:对应方式一
    • path:对应方式二
    • body:对应方式三

方式一:url?id=1&user='qlh'后面参数

@ApiOperation(value = "接口总体描述", notes = "<span style='color:red;'>详细描述:</span>&nbsp;方法详细描述信息")
@ApiImplicitParams({@ApiImplicitParam(name = "username", value = "用户名", dataType = "String", defaultValue = "qlh"),@ApiImplicitParam(name = "password", value = "密码", dataType = "String", defaultValue = "123")
})
@PostMapping("/")
public String login(String username, String password) {return "Hello login ~";
}

方式二:url/1/2路径后 传参 在路径中获取参数

@ApiOperation(value = "接口总体描述", notes = "<span style='color:red;'>详细描述:</span>&nbsp;方法详细描述信息")
@ApiImplicitParams({@ApiImplicitParam(name = "id", value = "id", dataType = "String", defaultValue = "qlh",paramType = "path"),@ApiImplicitParam(name = "name", value = "姓名", dataType = "String", defaultValue = "123",paramType = "path")
})
@PostMapping("/index/{id}/{name}")
public String index(@PathVariable("id") String id, @PathVariable("name") String name) {return "Hello World ~";
}

方式三:在body中传参

@ApiOperation(value = "接口总体描述", notes = "<span style='color:red;'>详细描述:</span>&nbsp;方法详细描述信息")
@ApiImplicitParams({@ApiImplicitParam(name = "id", value = "id", dataType = "String", defaultValue = "xxx", paramType = "body"),@ApiImplicitParam(name = "name", value = "姓名", dataType = "String", defaultValue = "123", paramType = "body")
})
@PostMapping("/index")
public String index(@RequestBody Map<String, Object> map) {return "Hello World ~";
}

@ApiResponses

作用:用于接口的响应结果
修改范围:作用在接口方法上
参数:@ApiResponse数组

@ApiResponses({@ApiResponse(),@ApiResponse(),...
})

@ApiResponse

作用:在ApiResponses里面对响应码以及响应内容进行设置
修饰范围:作用接口方法上
参数

  • code:响应状态码
  • message:响应状态码对应的响应内容
@ApiResponse(code = 10001, message = "签名错误"),
@ApiResponse(code = 10002, message = "sql错误"),
@ApiResponse(code = 10003, message = "服务怠机,请稍后重试"),

@ApiIgnore

作用:忽略类,方法,参数。(忽略的意思:在swagger-ui.html中不显示)
修改范围:作用在类,方法,参数上

@ApiIgnore

实体类中swagger注解

@ApiModel

作用:用来对实体类进行说明
修饰范围:作用在类上

@ApiModel(value="类名",description = "实体类描述")

@ApiModelProperty

作用:用来对实体类中的属性进行说明
修饰范围:作用在类中的属性上

@ApiModelProperty(value = "类属性描述",required = true,example = "属性举例",notes = "备注")

结束语

至此springboot集成swagger2就讲完了,我相信,看完我这两篇文章之后的朋友,你们就能很熟练的在java代码中使用swagger了。
因为目前前后端分离比较流行,所以写一个好的swagger接口文档是很有必要的,这样就会减少前后端因为一些接口表述不清楚,导致的后端开发人员来回和前端人员交流沟通,大大的提高了开发的效率。

swagger的详细注解相关推荐

  1. spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例...

    本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...

  2. cad lisp 背景遮罩_给文字批量添加边界偏移因子为1.1(或其他值)的背景遮罩的源程序(有详细注解)...

    本帖最后由 作者 于 2007-11-6 9:06:55 编辑 CAD2005以后版本中就有了背景遮罩功能,但其默认值为1.5多数情况下不太合适 在Autodesk官方网站技术支持知识库查询,其中关于 ...

  3. Word Maze单词迷宫C语言解法(详细注解)

    Word Maze单词迷宫C语言解法(详细注解) 题目描述 C语言代码 DFS算法 题目描述 Word Maze 是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉.假设给定 ...

  4. JAVA实现导出mysql表结构到Word详细注解版

    JAVA实现导出mysql表结构到Word详细注解版 转自https://blog.csdn.net/weixin_42041153/article/details/109739073 本文在原文中一 ...

  5. Matlab实现Kmeans算法(每行代码标注详细注解)

    本文主要为了完成平日作业,并进一步加深对算法的理解.也希望对来访的读者有所帮助. 目录 一.什么是Kmeans算法 二.Kmeans算法的意义 三.Kmeans算法代码解析 1.关键概念 2.大致思路 ...

  6. linux下最简单多线程单文件socks5代理proxy服务器程序(仅一个c文件,带详细注解)

    2020.9.11 网上看的都比较复杂,GITHUB找了一个多线程的相对简单的MicroSocks项目,花了几周时间(没办法,菜鸟一个)改了一下,改成单文件,测试OK. /* wxl_socks5_p ...

  7. Matlab实现DBSCAN算法(每行代码标注详细注解)

    本文主要为了完成平日作业,并进一步加深对算法的理解.也希望对来访的读者有所帮助. 目录 一.什么是DBSCAN算法 二.DBSCAN算法的意义 三.DBSCAN算法代码解析 1.关键概念 2.大致思路 ...

  8. swagger 修改dto注解_Swagger介绍及使用

    Swagger介绍及使用 导语: 相信无论是前端还是后端开发,都或多或少地被接口文档折磨过.前端经常抱怨后端给的接口文档与实际情况不一致.后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新.其 ...

  9. swagger ui.html 路径,Swagger UI 详细讲解

    本文章描述的是Swagger3.0的内容,与Swagger2.0内容有较大差别.接口描述在3.0中通过Swagger规范(一个JSON文件)来描述,Swagger2.0是通过在接口中提供一系列注解来描 ...

  10. Swagger 2——@ApiOperation注解、@ApiModel注解、@ApiImplicitParams注解、@ApiImplicitParam注解无效解决方案

    问题描述 Spring MVC REST API使用springfox-swagger2.swagger一切都可以正常工作,但是我的问题是我无法在我的swagger文档中添加其他信息. @RestCo ...

最新文章

  1. 二叉树学习笔记之树的旋转
  2. leetcode 64. 最小路径和
  3. ue如何使用php文件,UltraEdit使用设置
  4. oracle使用存储过程做铺底数据
  5. 150929.js过完
  6. Visual Studio Code 中文下载
  7. pip 删除安装包_Python中PIP的快速指南
  8. 华为交换机静态路由配置案例_快速了解配置三层交换机策略路由配置
  9. 用VB如读取内存地址
  10. 使用springMVC提供的CommonsMultipartResolver文件解析器,实现文件轻松上传
  11. 43个实例xHTML+CSS(DIV+CSS)网页及导航布局教程
  12. Django合并多个查询结果
  13. TCP的三次握手和四次挥手(超详解)
  14. Vue的生命周期函数和beforeRouteEnter()/beforeRouteLeave()的函数
  15. Android数字时钟神一般的实现——TextClock
  16. 修改html倒计时,利用自定义HTML小工具实现倒计时
  17. Nginx的HTTP健康检测
  18. 贪心算法——国王游戏(洛谷P1080)
  19. 服务器装虚拟声卡,虚拟声卡,教您怎么安装虚拟声卡
  20. Codeforces Round 444 div2 D Ratings and Reality Shows (双指针)

热门文章

  1. QTreeView样式
  2. tail -f 命令详解
  3. JMeter之接口测试脚本编写
  4. Java命名和java图标来由
  5. html css js菜鸟教程,DOM CSS - JavaScript 教程 - 菜鸟学堂-脚本之家
  6. 凯恩帝数控系统面板介绍_KND凯恩帝数控系统说明书.doc
  7. trados 有道api_小白教程(四) | 你和专业翻译还差一个Trados
  8. Spring中Bean作用域有哪些
  9. 在oracle中插入语句要求,oracle插入语句
  10. TUIO+激光投影互动