spring boot 整合 swagger2
swagger2为了更好的管理api文档接口
swagger构建的api文档如下,清晰,避免了手写api诸多痛点

一,添加依赖
<!--swagger2的官方依赖-->
<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>
二,swagger2的配置类
配置类需要与application.java至于同一目录下
/**
* @author canger
* @Deseription Swagger2的配置类
* 在与spring boot集成时,放在与Application.java同级的目录下。
* 通过@Configuration注解,让Spring来加载该类配置。
* 再通过@EnableSwagger2注解来启用Swagger2。
* @create 2019/5/10 10:59
**/
@Configuration
@EnableSwagger2
public class Swagger2 { /**
* 创建API应用
* apiInfo() 增加API相关信息
* 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
* 本例采用指定扫描的包路径来定义指定要建立API的目录。
*
* @return
*/
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.demo.controller"))
.paths(PathSelectors.any())
.build();
} /**
* 创建该API的基本信息(这些基本信息会展现在文档页面中)
* 访问地址:http://项目实际地址/swagger-ui.html
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot中使用Swagger2构建RESTful APIs")
.description("服务发布 用户信息筛选")
.termsOfServiceUrl("http://localhost:8088/api")
.contact("卤煮蛋")
.version("1.0")
.build();
} }
三、设定访问API doc的路由
在配置文件中,application.yml中声明:
springfox.documentation.swagger.v2.path: /api-docs
四,Controller层编写规范及注解功能
常用注解
@Api:用在类上,说明该类的作用。
@ApiOperation:注解来给API增加方法说明。
@ApiImplicitParams : 用在方法上包含一组参数说明。
@ApiImplicitParam:用来注解来给方法入参增加说明。
@ApiResponses:用于表示一组响应
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
      code:数字,例如400
      message:信息,例如"请求参数没填好"
      response:抛出异常的类   
@ApiModel:描述一个Model的信息(一般用在请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty:描述一个model的属性
controller层
@Controller
@RequestMapping("/user")
@Api(value = "/user",description = "用户信息的增删改查")
public class UserController { @Autowired
private IUserService userService; @RequestMapping(value = "/getPage",method = RequestMethod.GET ,produces = {"application/json" })
@ResponseBody
@ApiOperation(value = "获取用户列表",httpMethod = "GET",notes = "返回用户列表")
@ApiResponses(
@ApiResponse(code = 2001,message = "用户信息有误")
)
public ResultType getPage(
@ApiParam(required = true,name = "current",value = "用户数据第几页")Integer current,
@ApiParam(required = true,name = "size",value = "用户数据展示个数")Integer size
) throws BusinessException {
Page<User> page = new Page<>(current,size);
try {
page = userService.selectPage(page);
} catch (Exception e) {
throw new BusinessException(ErrorCode.UNKNOW_ERROR); }
List<User> users = page.getRecords();
return ResultType.getResult(users);
}
}
五,启动项目over
启动SpringBoot项目,访问 http://localhost:自己端口/swagger-ui.html
spring boot 整合 swagger2的更多相关文章
- spring boot整合Swagger2
		
Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器 ...
 - Spring Boot 项目学习 (四) Spring Boot整合Swagger2自动生成API文档
		
0 引言 在做服务端开发的时候,难免会涉及到API 接口文档的编写,可以经历过手写API 文档的过程,就会发现,一个自动生成API文档可以提高多少的效率. 以下列举几个手写API 文档的痛点: 文档需 ...
 - 2018 最新 spring boot 整合 swagger2 (swagger2 版本 2.8.0)
		
好久没上了, 看到又有人回复了. 我就来修改一下. 修改时间 2018年5月16日 这回给你上全新版本. 至发稿时间,所有的包都是新版. 注意: 高版本需要添加 jaxb-api 包, 否则会报错 ...
 - Spring Boot 整合Swagger2构建API文档
		
1.pom.xml中引入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>spri ...
 - Spring Boot整合JPA、Redis和Swagger2
		
好久没有总结了,最近也一直在学习.今天就把spring boot与其它技术的整合做个小总结,主要是jpa.redis和swagger2.公司里有用到这些,整合起来也很简单. 首先,新建一个Spring ...
 - Spring Boot初识(3)- Spring Boot整合Swagger
		
一.本文介绍 如果Web项目是完全前后端分离的话(我认为现在完全前后端分离已经是趋势了)一般前端和后端交互都是通过接口的,对接口入参和出参描述的文档就是Mock文档.随着接口数量的增多和参数的个数增加 ...
 - Spring Boot之Swagger2集成
		
一.Swagger2简单介绍 Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档.它既可以减少我们创建文档的工作量,同时 ...
 - Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询
		
摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 预见未来最好的方式就是亲手创造未来 – <史蒂夫·乔布斯传> 』 运行环境: ...
 - spring boot整合jsp的那些坑(spring boot 学习笔记之三)
		
Spring Boot 整合 Jsp 步骤: 1.新建一个spring boot项目 2.修改pom文件 <dependency> <groupId>or ...
 
随机推荐
- 【58.33%】【codeforces 747B】Mammoth's Genome Decoding
			
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
 - 51nod 天气晴朗的魔法 - (Kruskall最小生成树)
			
题目: 基准时间限制:1 秒 空间限制:131072 KB 51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动. N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接 ...
 - margin为负值的几种情况
			
1.margin-top为负值像素 margin-top为负值像素,偏移值相对于自身,其后元素受影响,见如下代码: 1 <!DOCTYPE html> 2 <html lang=&q ...
 - background:url(./images.png) no-repeat 0 center的用法
			
background:url(./images.png) no-repeat 0 center; //图像地址 不重复 水平位置0 垂直位置居中 background:url(./images.png ...
 - .Net  Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库
			
.Net Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库 , 一直报下面的错误 ORA-00604: error occurred at recursive SQL ...
 - 微信 HTML5 VIDEO 视频播放解决方案
			
原文链接:https://www.jianshu.com/p/e4573acf6564 webkit-playsinline && playsinline="true&quo ...
 - git之分支
			
分支相互之间互不干扰 1.小乌龟创建分支,切换/检出 创建后直接切换到该分支,另一个需要再切换一下. 2.点击这个可以看到所有的分支,进行删除操作. 3.在fen1,fen2分别进行操作更新,互不 ...
 - b方式操作文件
			
f=open('test11.py','rb',encoding='utf-8') #b的方式不能指定编码 f=open('test11.py','rb') #b的方式不能指定编码 data=f.re ...
 - mysql主从之双主配置
			
mysql双主配置 mysql双主其实就是互相同步,互为主从 任意一台都能够执行插入动作 生产环境用得非常少,因为还是担心数据一致的问题 生产环境一般来说主从已经够用 172.19.132.121的配 ...
 - 003 ansible部署ceph集群
			
介绍:在上一次的deploy部署ceph,虽然出了结果,最后的结果并没有满足最初的目的,现在尝试使用ansible部署一遍,看是否会有问题 一.环境准备 ceph1充当部署节点,ceph2,ceph3 ...