亞寵展、全球?qū)櫸锂a(chǎn)業(yè)風向標——亞洲寵物展覽會深度解析
1084
2022-05-29
Swagger概念
傳統(tǒng)API文檔管理缺點:
- 對API文檔更新時需要通知前端人員,導致文檔更新交流不及時,API接口返回信息不明確
- 缺乏在線接口測試,需要使用額外的API測試工具:postman,SoapUI
- 接口文檔太多,不便于管理
為了解決傳統(tǒng)API文檔維護問題,方便進行測試后臺RESTful接口并實現(xiàn)動態(tài)更新,引入Swagger接口工具
Swagger工具優(yōu)點:
- 功能豐富: 支持多種注解,自動生成接口文檔界面,支持在界面測試API接口功能
- 及時更新: 在開發(fā)工程中編寫好注釋,就可以及時更新API文檔
- 整合簡單: 通過添加pom.xml依賴和簡單配置,內(nèi)嵌于應用中就可同時發(fā)布API接口文檔界面,不需要部署獨立服務
整合Swagger生成API文檔
1.引入Maven依賴springfox-swagger2和springfox-swagger-ui 2.創(chuàng)建SwaggerConfig類實現(xiàn)Swagger生成API文檔邏輯: 生成API文檔的掃包范圍apis 創(chuàng)建API文檔信息ApiInfoBuilder.title("文檔標題").description("文檔描述").termOfServiceUrl("網(wǎng)址Url").version("版本號").build() 3.在SwaggerConfig類上標注@EnableSwagger2注解開啟Swagger功能 4.創(chuàng)建SwaggerController類,在類中創(chuàng)建API接口 5.在SwaggerController類上標注@Api("接口描述")注解作整體接口描述 6.在SwaggerController類里API接口上被標注@ApiOperation("具體接口描述")注解,標注@ApiImplicitParam(name="參數(shù)名稱",value="參數(shù)值",required=true,dataType="參數(shù)類型") 7.注意:不要在API接口類上標注RequestMapping注解(這樣會生成所有請求接口,沒有可讀性),根據(jù)相應的請求方式,標注@XxxMapping注解 8.創(chuàng)建啟動類啟動
微服務集群項目
在微服務項目中,Swagger是在每個服務進行集成的,需要將整個微服務中的Swagger進行合成到同一臺服務器上:
- 使用Zuul+Swagger實現(xiàn)
- 使用Nginx+Swagger實現(xiàn),以項目類型跳轉(zhuǎn)到不同的接口文檔
SpringBoot中支持對Swagger進行管理,只需要在Zuul網(wǎng)關中添加對應服務的Swagger文檔即可
原理: 每個獨立服務都會集成Swagger自動生成API文檔,前端發(fā)送服務請求到Zuul網(wǎng)關,Zuul根據(jù)請求調(diào)用對應服務的Swagger查詢API接口
在各個微服務的類中: 1.在各個微服務中引入SpringBoot支持的Swagger依賴swagger-spring-boot-starter 2.配置文件,可省略不寫: (swagger.base-package=需要生成文檔的包名) 3.在微服務的主類上標注@EnableSwagger2Doc文檔注解,生成Swagger文檔, 4.在微服務的主類上標注@Api("接口描述")注解作整體接口描述 5.在SwaggerController類里API接口上被標注@ApiOperation("具體接口描述")注解 6.標注@ApiImplicitParam(name="參數(shù)名稱",value="參數(shù)值",required=true,dataType="參數(shù)類型") 在Zuul網(wǎng)關類中: 1.引入SpringBoot支持的Swagger依賴swagger-spring-boot-starter 2.在Zuul網(wǎng)關類中創(chuàng)建SwaggerAPI文檔的配置類邏輯方法 添加文檔來源:resource.add(swaggerResource("文檔名稱","API接口文檔","版本號")) 3.在SwaggerAPI文檔的配置類上標注@Component將配置類添加到容器中 4.在Zuul網(wǎng)關類上標注@EnableSwagger2Doc開啟Swagger文檔注解
API Spring Boot
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。