狂神聲明 : 文章均為自己的學習筆記 , 轉(zhuǎn)載一定注明出處 ; 編輯不易 , 防君子不防小人~共勉 !?
Swagger學習筆記
課程目標
- 了解Swagger的概念及作用
- 掌握在項目中集成Swagger自動生成API文檔
Swagger簡介
前后端分離? (前后端相對獨立且松耦合)
- 前端-->前端控制層 , 視圖層
- 前端和后端利用API接口進行相應協(xié)作(數(shù)據(jù)可能是json也可能是xml等等的...)
- 后端-->后端控制層 , 服務層 , 數(shù)據(jù)訪問層
問題 ?
- 前后端集成------CI/CD
- 前端或后端無法做到 "及時協(xié)商 , 盡早解決" 最終導致問題集中爆發(fā) .
解決方案
- 首先定義schema , 并實時跟蹤最新的API , 降低集成風險 .
Swagger
- Restful API文檔在線自動生成器-->API文檔與API定義同步更新
- 直接運行 , 在線測試API
- 支持多種語言 (如 : java , php 等等)
- 官網(wǎng) : https:///
Spring集成Swagger -->springfox
- springfox-swagger2
- swagger-springmvc
項目中集成Swagger
項目環(huán)境 : 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 (官網(wǎng)下載)
- Spring MVC配置文件
<!-- 激活@controller模式 -->
<mvc:annotation-driven />
<!-- 開啟靜態(tài)文件 默認攔截器 -->
<mvc:default-servlet-handler/>
添加指定掃描 : < context:component-scan />
具體運用
API加入Swagger
- 通過在API上添加注解實現(xiàn) , API文檔的同步效果
- @Api --> ( 表名可供Swagger展示的接口類 : 用在類上面 )
- @ApiOperation --> ( 描述API方法 : 用在方法上面 )
- @ApiParam --> ( 單個參數(shù)描述 )
- @ApiModel --> ( 用對象接收參數(shù) : 用在類上面 )
- @ApiModelProperty --> ( 用對象接收參數(shù)時 , 描述對象的一個字段 ; 用在屬性上面 )
Nginx配置
- 訪問Swagger界面
- http://IP:port /{context-path}/swagger-ui.html
- 問題
- 生成環(huán)境下 , 只開放80端口 , 通過Tomcat無法訪問Swagger
- 解決方案
- 通過 Nginx 進行Swagger 的訪問 (nginx.conf)
- 注釋掉 server節(jié)點下的 root . 即前端靜態(tài)工程
- 注釋掉 location 這個節(jié)點

- http://IP/{context-path}/swagger-ui.html
來源:http://www./content-4-116451.html
|