Swagger学习笔记
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 !
Swagger学习笔记
课程目标
- 了解Swagger的概念及作用
- 掌握在项目中集成Swagger自动生成API文档
Swagger简介
前后端分离 (前后端相对独立且松耦合)
- 前端-->前端控制层 , 视图层
- 前端和后端利用API接口进行相应协作(数据可能是json也可能是xml等等的...)
- 后端-->后端控制层 , 服务层 , 数据访问层
问题 ?
- 前后端集成------CI/CD
- 前端或后端无法做到 "及时协商 , 尽早解决" 最终导致问题集中爆发 .
解决方案
- 首先定义schema , 并实时跟踪最新的API , 降低集成风险 .
Swagger
- Restful API文档在线自动生成器-->API文档与API定义同步更新
- 直接运行 , 在线测试API
- 支持多种语言 (如 : java , php 等等)
- 官网 : https://swagger.io/
Spring集成Swagger -->springfox
- springfox-swagger2
- swagger-springmvc
项目中集成Swagger
项目环境 : JDK1.8 , Spring4.1.7 , Mybatis3.2.2
Spring MVC 集成springfox-swagger2构建Restful API
- Maven依赖
- springfox-swagger2
- springfox-swagger-ui
- guava
- mapstruct-jdk8
- jackson
- jackson-core
- jackson-databind
- jackson-annotations
集成配置步骤
- 在pom.xml文件中添加Swagger2相关的依赖
- Swagger2配置类 : SwaggerConfig . java (官网下载)
- @ComponentScan : 设置Swagger 扫描包
- @EnableSwagger2 : 使Swagger2生效
- @Configuration : 自动在本类上下文加载一些环境变量信息
package dcc.core; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration //声明该类为配置类 @EnableSwagger2 //声明启动Swagger2 @EnableWebMvc //声明启动mvc public class SwaggerConfig{ @Bean public Docket customDocket() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("dcc"))//扫描的包路径 .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("DCC API接口")//文档说明 .version("1.0.0")//文档版本说明 .build(); } }
- Spring MVC配置文件
<!-- 激活@controller模式 --> <mvc:annotation-driven /> <!-- 开启静态文件 默认拦截器 --> <mvc:default-servlet-handler/> 添加指定扫描 : < context:component-scan />
具体运用
API加入Swagger
- 通过在API上添加注解实现 , API文档的同步效果
- @Api --> ( 表名可供Swagger展示的接口类 : 用在类上面 )
- @ApiOperation --> ( 描述API方法 : 用在方法上面 )
- @ApiParam --> ( 单个参数描述 )
- @ApiModel --> ( 用对象接收参数 : 用在类上面 )
- @ApiModelProperty --> ( 用对象接收参数时 , 描述对象的一个字段 ; 用在属性上面 )
Nginx配置
- 访问Swagger界面
- http://IP:port /{context-path}/swagger-ui.html
- 问题
- 生成环境下 , 只开放80端口 , 通过Tomcat无法访问Swagger
- 解决方案
- 通过 Nginx 进行Swagger 的访问 (nginx.conf)
- 注释掉 server节点下的 root . 即前端静态工程
- 注释掉 location 这个节点

- http://IP/{context-path}/swagger-ui.html
- 通过 Nginx 进行Swagger 的访问 (nginx.conf)
Swagger学习笔记的更多相关文章
- webapi swagger学习笔记
版权声明:部分摘抄其他博主朋友的博文内容,旨在分享学习,如给您带来不便,请原谅.原文地址 http://www.cnblogs.com/yanweidie/p/5709113.html#_label3 ...
- golang学习笔记7 使用beego swagger 实现API自动化文档
golang学习笔记7 使用beego swagger 实现API自动化文档 API 自动化文档 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/doc ...
- ASP.NET Core 2 学习笔记(十三)Swagger
Swagger也算是行之有年的API文件生成器,只要在API上使用C#的<summary />文件注解标签,就可以产生精美的线上文件,并且对RESTful API有良好的支持.不仅支持生成 ...
- SpringBoot学习笔记:Swagger实现文档管理
SpringBoot学习笔记:Swagger实现文档管理 Swagger Swagger是一个规范且完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.Swagger的目标是对RE ...
- golang学习笔记5 用bee工具创建项目 bee工具简介
golang学习笔记5 用bee工具创建项目 bee工具简介 Bee 工具的使用 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/docs/instal ...
- Angularjs2 学习笔记
angularjs2 学习笔记(一) 开发环境搭建 开发环境,vs2013 update 5,win7 x64,目前最新angular2版本为beta 17 第一步:安装node.js 安装nod ...
- 从零开始搭建.NET Core 2.0 API(学习笔记一)
从零开始搭建.NET Core 2.0 API(学习笔记一) 一. VS 2017 新建一个项目 选择ASP.NET Core Web应用程序,再选择Web API,选择ASP.NET Core 2. ...
- kratos微服务框架学习笔记一(kratos-demo)
目录 kratos微服务框架学习笔记一(kratos-demo) kratos本体 demo kratos微服务框架学习笔记一(kratos-demo) 今年大部分时间飘过去了,没怎么更博和githu ...
- 【转载】Java学习笔记
转载:博主主页 博主的其他笔记汇总 : 学习数据结构与算法,学习笔记会持续更新: <恋上数据结构与算法> 学习Java虚拟机,学习笔记会持续更新: <Java虚拟机> 学习Ja ...
随机推荐
- 【转载】SpringCloud-Eurek 心跳阈值说明
在使用eureka过程中,查看监控界面,出现: EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE ...
- MySQL 4 种隔离级别的区别
## 测试环境 mysql> select version(); +------------+ | version() | +------------+ -log | +------------ ...
- Fluent动网格【12】:扩散光顺
扩散光顺是Fluent提供的另外一种常用的网格光顺方法.其基本原理是通过求解扩散方程得到网格节点的运动位移. 扩散光顺基本计算 扩散光顺通过求解 以下扩散方程来设置网格的节点位置. \[ \nabla ...
- Mac安装minikube
安装过程 先安装minikube,使用下面命令(由于墙的问题,所以指定国内的地址) curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyun ...
- 在Android中使用FFmpeg(android studio环境)
1.首先我们需要一个已经编译好的libffmpeg.so文件.(怎么编译是个大坑,可以参考windows环境下编译android中使用的FFmpeg,也可以用网上下载的现成的,本文相关的github项 ...
- Gin框架初识
一.安装 使用go下载gin库,命令行输入:go get github.com/gin-gonic/gin ,一般使用需要的依赖: import "github.com/gin-gonic/ ...
- elasticsearch以及head插件在centos7上的安装与配置教程
ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...
- Oracle_lhr_CentOS 7.3 ECS上搭建RAC 18c+单实例DG+EMCC+DG的FSFO快速故障转移配置
Oracle_lhr_CentOS 7.3 ECS上搭建RAC 18c+单实例DG+EMCC+DG的FSFO快速故障转移配置 [大型连续免费公开课]Oracle 18c rac+dg+13.3的em ...
- LINUX下从mysql文件导出后标题合并
这两天在做数据导出,真实折磨死了,记录下来.导出的格式是csv. 由于我们的数据量比较大,导出到excel时,几百万上千万行的时候用程序去写入肯定是不行,所以自然就想到了mysql的outfile功能 ...
- 【Zookeeper系列】构建ZooKeeper应用(转)
原文地址:https://www.cnblogs.com/sunddenly/p/4064992.html 一.配置服务 配置服务是分布式应用所需要的基本服务之一,它使集群中的机器可以共享配置信息中那 ...