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 ...
随机推荐
- 各种OJ网站汇总
acmicpc.info acmicpc.info http://acmicpc.info/archives/224 此网站聚合了各种ICPC相关信息. 国内Online Judge 用户体验极佳的v ...
- 【C++】C++中的流
目录结构: contents structure [-] 1.IO类 IO对象无拷贝状态 条件状态 文件流 文件模式 string流 1.IO类 除了istream和ostream之外,标准库还定义了 ...
- Vue在线客服系统【开源项目】
1. 项目介绍 一个基于Vue2.0的在线客服系统. 技术栈包含:Vue.VueX.Vue Router.Element UI. 2. 功能介绍 项目包含了2个模块:客服端和访客端. 2.1 客服端功 ...
- GridView不执行RowCommand事件
web.config里把viewstate禁用了.如果是的话在页面里单独开起来就好了. <%@ Page Title="" Language="C#" M ...
- Cocos 编译android-studio
3.15.1 之前: http://www.jianshu.com/p/ac2bac4734b8 http://www.jianshu.com/p/3d0cc85460d1 在工程项目下 运行 coc ...
- (6) MySQL慢查询日志的使用
一. 设置方法 使用慢查询日志里捕获 启用之前需要先进行一些设置 方法一:全局变量设置 设置慢查询日志的日志文件位置 set global slow_query_log_file = "D: ...
- 使用Mybatis-Generator自动生成Dao、Model、Mapping
Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件. 1.相关文 ...
- 织梦dedecms安全设置详情
第一.安装的时候数据库的表前缀,最好改一下,不用dedecms默认的前缀dede_,可以改成ljs_,随便一个名称即可. 第二.后台登录开启验证码功能,将默认管理员admin删除,改成一个自己专用的, ...
- Spring+SpringMVC重复加载配置文件问题
sping+springmvc的框架中,IOC容器的加载过程 http://my.oschina.net/xianggao/blog/596476 基本上是先加载ContextLoaderListen ...
- win10下安装基于caffe的 Faster-Rcnn
安装教程 本篇博客将会教会你在Windows下配置py-faster-rcnn,请细心仔细阅读.说白了,Windows下配置这些东西就是一个坑. 安装配置Anaconda 由于py-faste ...