Swagger2 初始用
1.结合Spring-Boot 引入 pom 依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
<exclusions>
<exclusion>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.0-jre</version>
</dependency>
<!--界面支持-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
pom.xml
2.创建一个 SwaggerConfig 配置类
1 @Configuration
2 @EnableSwagger2
3 public class SwaggerConfig {
4
5 @Bean
6 public Docket createRestApi() {
7 return new Docket(DocumentationType.SWAGGER_2)
8 .select()
9 // 方法需要有ApiOperation注解才能生存接口文档
10 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
11 // 路径使用any风格
12 .paths(PathSelectors.any())
13 .build()
14 // 如何保护我们的Api,有三种验证(ApiKey, BasicAuth, OAuth)
15 .securitySchemes(security())
16 // 接口文档的基本信息
17 .apiInfo(apiInfo());
18 }
19
20 /**
21 * 接口文档详细信息
22 *
23 * @return
24 */
25 private ApiInfo apiInfo() {
26 return new ApiInfoBuilder().title("Swagger2 API").description("xd-api文档").termsOfServiceUrl("http://www.localhost:8080").version("1.0.0").build();
27 }
28
29 private List<ApiKey> security() {
30 ArrayList<ApiKey> apiKeys = new ArrayList<>();
31 apiKeys.add(new ApiKey("token", "token", "header"));
32 return apiKeys;
33 }
34
35 }
3.使用 controller 实例
@Api(tags = "登录接口")
@RequestMapping("/api")
@RestController
public class ApiLoginController { @PostMapping("login")
@ApiOperation(value = "用户登录接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String"),
@ApiImplicitParam(name = "password", value = "登录密码", required = true, dataType = "String")
})
public String login(String username, String password) {
return username + " : " + password; } }
LoginController.java
4.常用注解说明
@Api:修饰整个类,描述Controller的作用 (可选值:value,tags,description...可以自行查看源码)
@ApiOperation:描述一个类的一个方法,或者说一个接口 (用于方法;表示一个http请求的操作 ,value用于方法描述 ,notes用于提示内容)
@ApiParam:单个参数描述 (用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等)
name–参数名
value–参数说明
required–是否必填(默认值为false))
@ApiModel:用对象来接收参数 (用于类 表示对类进行说明,用于参数用实体类接收
value–表示对象名
description–描述
都可省略)
@ApiModelProperty:用对象接收参数时,描述对象的一个字段 (用于方法,字段; 表示对model属性的说明或者数据操作更改
value–字段说明
name–重写属性名字
dataType–重写属性类型
required–是否必填
example–举例说明
hidden–隐藏)
@ApiOperation(value = "用户发送邮件操作", httpMethod = "GET", response = String.class, notes = "用户发送邮件操作,提供用户管理-用户发送邮件操作")
public String sendEmail(@ApiParam ( value = "userId", required = true ) @RequestParam (
value = "userId" ) String userId,
@ApiParam(name="邮件对象",value="传入json格式",required=true)
@RequestBody EmailModel model,
HttpServletRequest request) { -------------------------------------------------------------------------------------------
@ApiModel(value="邮件对象",description="邮件对象实体类")
public class EmailModel extends BaseModel {
//邮件发送人
@ApiModelProperty(value="邮件发送人",name="sender",example="xxxxx@qq.com")
private String sender;
//邮件接收人
@ApiModelProperty(value="邮件接收人",name="recipients",example="xxxxx@qq.com")
private String recipients;
//邮件主题
@ApiModelProperty(value="邮件主题",name="recipients")
private String subject;
//邮件内容
@ApiModelProperty(value="邮件内容",name="邮件内容")
private String text;
}
代码段
效果图

@ApiIgnore:使用该注解忽略这个API,用于类或者方法上 (用于类或者方法上,可以不被swagger显示在页面上)
@ApiImplicitParam:一个请求参数,用于方法上
name – 参数名称
value – 参数说明
dataType – 数据类型
paramType – 参数类型
example – 举例说明
@ApiImplicitParams:多个请求参数 ,包含多个 @ApiImplicitParam,用于方法上
Swagger2 初始用的更多相关文章
- 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建
基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建 前言 最近做回后台开发,重新抓起以前学过的SSM(Spring+Sp ...
- springboot2.04+mybatis-plus+swagger2+CodeGenerator
@author zhangyh SpringBoot技术栈搭建个人博客[项目准备] RESTful API就是一套协议来规范多种形式的前端和同一个后台的交互方式 原型设计 事实上,我是直接先去找的原 ...
- Springboot+swagger2.7集成开发
Springboot+swagger2.7集成开发 本篇文章是介绍最新的springboot和swagger2.7集成开发和2.0稍微有一些出入: Springboot集成环境配置 Swagger2. ...
- 2DToolkit官方文档中文版打地鼠教程(一):初始设置
这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...
- CSharpGL(38)带初始数据创建Vertex Buffer Object的情形汇总
CSharpGL(38)带初始数据创建Vertex Buffer Object的情形汇总 开始 总的来说,OpenGL应用开发者会遇到为如下三种数据创建Vertex Buffer Object的情形: ...
- ArrayList、Vector、HashMap、HashSet的默认初始容量、加载因子、扩容增量
当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低. 加载因 ...
- linux系统下使用xampp 丢失mysql root密码【xampp的初始密码为空】
如果在ubuntu 下面 使用xampp这个集成开发环境,却忘记mysql密码. 注:刚安装好的xampp的Mysql初始密码是空... 找回密码的步骤如下: 1.停止mysql服务器 sudo /o ...
- python基础之初始python
初始python之基础一 一.Python 介绍 1.python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发 ...
- openfire 初始密码
openfire 初始密码 mssql2014 进入数据库,找到 ofUser 表 ,将密码字段对应的密文替换为下面的内容,则密码就是 admin ecbd03623cd819c48718db1b27 ...
随机推荐
- C#中使用 正则表达式 替换img中src路径但保留图片名
text = Regex.Replace(text, @"(?i)(?<=<img\b[^>]*?src=\s*(['""]?))([^'"& ...
- 一文搞懂jvm内存结构
一.jvm是干什么的? 大家都知道java是跨平台语言,一次编译可以在不同操作系统上运行,怎么做到的呢,看下图: javac把写的源代码(java文件),编译成字节码(class文件),字节码部署到l ...
- 002-DOM事件实例-实现一个可以拖拽的登陆窗口
前言:这是跟着慕课网一个老师的视频做的,这几天在重新的梳理自己,写完这个例子要系统的学一下jQuery,我司现在用的还是比较多,毕竟用了它不用考虑IE兼容性,可以让开发更有效率. 1.项目需求及基本的 ...
- DIV的失去焦点(blur)实现
用防抖实现DIV鼠标移出消失 由于div标签本身不支持onblur事件,所以对于点击一个按钮弹出的div,我们想要当这个div失去焦点的时候,让它消失不能使用的onblur来实现. 但是可以利用 ...
- 微信h5页面audio标签在ios下不能自动播放
背景介绍:在一个h5页面中,当用户提交表单到后台,后台返回的结果成功的话,开始自动播放背景音乐 出现的问题:在安卓手机上正常,iOS中没有反应 后来网上一番搜索后了解到时因为iOS不允许自动播放音乐, ...
- 峰哥说技术:06-手撸Spring Boot自定义启动器,解密Spring Boot自动化配置原理
Spring Boot深度课程系列 峰哥说技术—2020庚子年重磅推出.战胜病毒.我们在行动 06 峰哥说技术:手撸Spring Boot自定义启动器,解密Spring Boot自动化配置原理 Sp ...
- Redis(6)——GeoHash查找附近的人
像微信 "附近的人",美团 "附近的餐厅",支付宝共享单车 "附近的车" 是怎么设计实现的呢? 一.使用数据库实现查找附近的人 我们都知道, ...
- Chromium的无锁线程模型C++代码示例
引言 作者:程序员bingo,主要关注客户端架构设计.性能优化.崩溃处理,有多年的Chromium浏览器开发经验. 多线程一直是软件开发中最容易出问题的环节,很多的崩溃.卡死问题都与多线程有关.在常用 ...
- nes 红白机模拟器 第4篇 linux 手柄驱动支持
小霸王学习机的真实手柄,实测CPU 占用 80% 接线图: 手柄读时序: joypad.c 驱动: 普通的字符设备驱动. #include <linux/module.h> #includ ...
- SpringBoot框架——从SpringBoot看IoC容器初始化流程之方法分析
目录 一.概观Spring Boot 二.Spring Boot应用初始化 2.1 初始化入口 2.2 SpringApplication的run方法 2.3 方法分析 三.容器创建与初始化 3.1 ...