SpringBoot
是為了簡化Spring
應用的創建、運行、調試、部署等一系列問題而誕生的產物,自動裝配的特性讓我們可以更好的關注業務本身而不是外部的XML配置,我們只需遵循規范,引入相關的依賴就可以輕易的搭建出一個 WEB 工程
隨着互聯網技術的發展,現在的網站架構基本都由原來的后端渲染,變成了:前端渲染、前后端分離的形態,而且前端技術和后端技術在各自的道路上越走越遠。
前端和后端唯一聯系,變成了API接口;API文檔自然就成了前后端開發人員聯系的紐帶,變得尤為的重要,swagger
就是一款讓你更好的書寫API文檔的框架。
文檔工具
沒有API文檔工具之前,基本都是手寫API文檔的,如有在Word
上寫的,有在對應的項目目錄下readme.md
上寫的,每個公司都有每個公司的玩法,無所謂好壞。但是這種手寫文檔帶來的弊端就是維護起來苦不堪言,對於接口容易發生變化的開發者來說,維護文檔就是噩夢….
好在現如今市場上書寫API文檔的工具有很多,常見的有 postman、yapi、阿里的RAP 但是能稱之為框架的,估計也只有swagger
了。
swagger
優缺點
- 集成方便,功能強大
- 在線調試與文檔生成
- 代碼耦合,需要注解支持,但不影響程序性能
導入依賴
在 pom.xml
中添加 swagger-spring-boot-starter
的依賴
1 |
<dependency> |
屬性配置
配置spring.swagger.enabled
開啟swagger
的使用,如果在生產環境中不想用可以在對應的profile
下面將它設置為spring.swagger.enabled=false
,這樣一來接口就不存在暴露的風險
1 |
# 掃描的包路徑,默認掃描所有 |
實體類
swagger
提供了非常齊全的注解,為POJO
提供了@ApiModel
、@ApiModelProperty
,以便更好的渲染最終結果
1 |
package com.battcn.entity; |
restful 風格接口
注解描述
@Api
: 描述Controller
@ApiIgnore
: 忽略該Controller
,指不對當前類做掃描@ApiOperation
: 描述Controller
類中的method
接口@ApiParam
: 單個參數描述,與@ApiImplicitParam
不同的是,他是寫在參數左側的。如(@ApiParam(name = "username",value = "用戶名") String username
)@ApiModel
: 描述POJO
對象@ApiProperty
: 描述POJO
對象中的屬性值@ApiImplicitParam
: 描述單個入參信息@ApiImplicitParams
: 描述多個入參信息@ApiResponse
: 描述單個出參信息@ApiResponses
: 描述多個出參信息@ApiError
: 接口錯誤所返回的信息
1 |
package com.battcn.controller; |
主函數
添加 @EnableSwagger2Doc
即可
1 |
package com.battcn; |
測試
由於上面的接口是 restful 風格的接口,添加和修改無法通過瀏覽器完成,以前都是自己編寫junit
或者使用postman
之類的工具。現在只需要打開瀏覽器輸入 http://localhost:8080/swagger-ui.html,更多操作請自行體驗…