SpringBoot整合Swagger的方法示例
作者:Chenjiabing 发布时间:2021-05-29 02:42:16
依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
配置类
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
/**
* Swagger的配置类
* @author 陈加兵
*
*/
@Configuration
public class SwaggerConfig{
/**
* 创建用户API文档
* @return
*/
@Bean
public Docket createRestUserApi(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("user")
.apiInfo(apiInfo()) //api的信息
.select()
.apis(RequestHandlerSelectors
.basePackage("cn.tedu.mycat.controller")) //添加包扫描
.paths(PathSelectors.any()).build();
}
/**
* 创建API信息
*/
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("api文档的标题") //标题
.description("api文档的描述") //描述
.contact( //添加开发者的一些信息
new Contact("爱撒谎的男孩", "https://chenjiabing666.github.io",
"18796327106@163.com")).version("1.0").build();
}
}
启动类
在springBoot的启动类上添加一个注解即可配置成功: @EnableSwagger2
访问api的路径
http://ip/projectName/swagger-ui.html
注解说明
@Api
标注在类上,用来对这个类进行说明的
如果想要生成文档,必须在类或者接口上标注
属性如下:
属性名称 | 备注 | 默认值 |
---|---|---|
value | url的路径值 | |
tags | 如果设置这个值、value的值会被覆盖 | |
description | 对api资源的描述 | |
basePath | 基本路径可以不配置 | |
position | 如果配置多个Api 想改变显示的顺序位置 | |
produces | For example, “application/json, application/xml” | |
consumes | For example, “application/json, application/xml” | |
protocols | Possible values: http, https, ws, wss. | |
authorizations | 高级特性认证时配置 | |
hidden | 配置为true 将在文档中隐藏 |
@ApiOperation
用在API方法上,对该API做注释,说明API的作用
不需要多讲,看源码,使用默认的value属性即可,说明该方法的作用
属性如下:
value | url的路径值 | |
---|---|---|
tags | 如果设置这个值、value的值会被覆盖 | |
notes | 对api资源的描述 | |
response | 返回的对象,在文档中点击Model可以获取该配置的内容 | |
responseContainer | 这些对象是有效的 “List”, “Set” or “Map”.,其他无效 | |
responseReference | 可以不配置 | |
httpMethod | 可以接受 “GET”, “HEAD”, “POST”, “PUT”, “DELETE”, “OPTIONS” and “PATCH” | |
position | 如果配置多个Api 想改变显示的顺序位置 | |
produces | 同 Api中的定义 | |
consumes | 同 Api中的定义 | |
protocols | 同 Api中的定义 | |
authorizations | 同 Api中的定义 | |
hidden | 是否隐藏,true 或者false ,这个可以隐藏后台接口 | |
code | http的状态码 默认 200 | |
extensions | 扩展属性 |
@ApiImplicitParams
用来包含API的一组参数注解,可以简单的理解为参数注解的集合声明
很重要,这个注解其中包含接口入参的详细说明
内容是集合
@ApiImplicitParam
用在 @ApiImplicitParams 注解中,也可以单独使用,说明一个请求参数的各个方面
详细的属性使用说明如下:
name :属性的字段名称,相当于form表单中的name,这个就是入参的字段
dataType :参数的类型,标识,字符串
value :该参数的描述
required :是否必填,布尔值
defaultValue :缺省值,会在文档中缺省填入,这样更方面造数据,不需要调用接口的去填值了
paramType :指定参数的入参数方式(也就是请求参数的位置),其中有四种常用的,如下:
query
path
body
form
paramType属性的详细说明
query :必须要和入参的字段一样,也可以使用 @RequestParam() 指定
path :用于Restful的风格的url,请求的参数写在路径上,如下:
@ApiOperation(value="根据用户Id获取用户信息",response=User.class,hidden=false)
@ApiImplicitParams({
@ApiImplicitParam(paramType = "path", name = "id", dataType="Integer", required = false, value = "用户的id", defaultValue = "1")
})
@GetMapping("/user/get/{id}")
public Object getUser(@PathVariable("id")Integer id){
return new User(id, "陈加兵");
}
body:以流的形式提交 仅支持POST
form:以表单的形式提交
来源:https://chenjiabing666.github.io/2018/10/21/SpringBoot整合Swagger/
猜你喜欢
- Quick Start在SpringBoot中使用log4j2日志框架,只需三步:引入依赖配置log文件获取Logger实例并输出日志引入依
- 本文介绍了Spring Boot Admin监控服务上下线邮件通知,分享给大家,具体如下:微服务架构下,服务的数量少则几十,多则上百,对服务
- 前言之前在SpringBoot项目中简单使用定时任务,不过由于要借助cron表达式且都提前定义好放在配置文件里,不能在项目运行中动态修改任务
- Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的<
- 简介前提条件:确保本机已经安装 VS Code。确保本机已安装 SSH client, 并且确保远程主机已安装 SSH server。VSC
- 本文实例为大家分享了Android TextView实现跑马灯效果的具体代码,供大家参考,具体内容如下当Layout中只有一个TextVie
- 引语:工作中有时候需要在普通的对象中去调用spring管理的对象,但是在普通的java对象直接使用@Autowired或者@Resource
- 中文乱码问题真的是一个很棘手的问题,特别是从前台传到后台之后,都不知道问题出在哪里了。现在分享解决javaWEB中前后台中文乱码问题的3种方
- MongoDB是介于关系数据库和非关系数据库之间的一种产品,文件的存储格式为BSON(一种JSON的扩展),这里就主要介绍Java通过使用m
- 核心配置文件mybatis-config.xml 系统核心配置文件MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属
- 最近在搭建springmvc的框架,遇到的这样的问题:在地址栏访问登陆界面访问不了,http://localhost/XXXX/WEB-IN
- 改了个bug,发现这个东西以前不知道,搜索了一下,看到的都是长篇大论,还谈js的源码,也是醉了。我就简单的说说这个是干啥的。简单说:就是触发
- 1、前言当提及如何终止一个线程时,部分读者通常立马想到的方法肯定是stop(),但是stop()方法并不被推荐使用(很多规范中是禁止使用的)
- 这几天做项目,有些地方的图片需要用到圆形图片,所以百度了一下,在github上找到一个开源项目,处理很简单,效果如下:使用起来特别简单,一共
- 如下所示:String beginDate="1328007600000";SimpleDateFormat sdf=n
- 最近修改线上bug的时候排查了一个十分隐藏的bug,直接上代码:Integer a = null;boolean flag = true;I
- JVM内部结构图Java虚拟机主要分为五个区域:方法区、堆、Java栈、PC寄存器、本地方法栈。下面来看一些关于JVM结构的重要问题。1.哪
- 每次写批量的时候,都要在网上搜索一下,虽然都做过多次了,但具体的自己还是记不住(汗颜),所以索性今天就记录下来。前期说明:foreach的主
- 1.搜索树的概念二叉搜索树是一种特殊的二叉树,又称二叉查找树,二叉排序树,它有几个特点:如果左子树存在,则左子树每个结点的值均小于根结点的值
- 本章将具体讲解下拉菜单的交互。使用下拉菜单(Dropdown)插件,您可以向任何组件(比如导航栏、标签页、胶囊式导航菜单、按钮等)添加下拉菜