使用swagger生成API說明文檔
本文由個人總結,如需轉載使用請標明原著及原文地址
沒有導出!!!!!不要整天給我留言導出呢,那個是你們百度的時候下面的推薦文章帶的關鍵字,要做導出從swagger取數據,用Thymeleaf這類模板引擎生成word文檔
SwaggerDemo,jar包使用maven進行管理,還沒了解maven的小伙伴可能有無法使用的情況
在做前后端分離的項目時,后端人員總是要寫接口文檔給其他使用者,大家都知道,寫接口文檔是一件吃力不討好的事,而swagger就是為了解決這個問題而存在的,不僅能提供接口文檔,還能提供簡單的傳參測試
要使用swagger,首先你要有一個spring項目
1.導包
我這使用maven統一管理jar包,在pom.xml中加入上面兩個dependency,maven就能自動下載對應jar包,不了解maven的小伙伴自行在百度上找jar包,然后手動導入項目
springfox-swagger2-vesion.jar
springfox-swagger-ui-vesion.jar
2.寫一個swagger配置類
創建的SwaggerConfig要繼承WebMvcConfigurationSupport
@EnableSwagger2 swagger2啟動注解
@ComponentScan(basePackages = {"cn.ycyy.controller"}) 指定需要生成API文檔的類所在的包路徑
@Configuration 聲明這是一個配置類
createRestApi方法不需要更改,主要用於swagger的初始化設置,包括掃描API注解路徑等,用我提供的createRestApi默認掃描當前項目全部路徑,這里的掃描與上面的@ComponentScan不同,這里掃描的不會顯示在swagger-ui(swaggerAPI文檔可視化界面,最后會說)上
apiInfo里的參數設置對應效果如下圖所示
SwaggerConfig文件必須放在spring注解掃描器能掃描到的位置,例如說我的項目都放在cn.ycyy項目下,我指定掃描路徑cn.ycyy那么spring就能把整個項目的注解都掃描到
然后將項目啟動發布到tomcat上,就能訪問swaggerAPI了
訪問的URL也是個固定的格式
http://ip地址:端口/項目名/swagger-ui.html#/
3.配置api生成
在先前說了,這里只會顯示@ComponentScan(basePackages = {"cn.ycyy.controller"}),這個路徑下的類生成的API
我的測試案例中只寫了一個UserController所以這里只顯示,UserController及里面的方法
UserController代碼如下
在類上加上@Api注解
以下參數可不指定
在方法上加上@ApiOperation注解
以下參數可不指定
如果方法需要前端傳遞參數,可使用@ApiParam注解
如果方法用對象入參的話,在實體類中對屬性加@ApiModelProperty注解
例如我有個方法的參數用User,那么我User類如下配置
效果如下所示
API文檔中會將User自動分解成User的屬性
4.注解全參數
以下是swagger2注解中的全參數,有興趣可以都試試
@Api
Api 標記可以標記一個Controller類做為swagger 文檔資源,使用方式
@ApiOperation每一個url資源的定義,使用方式
@ApiParam標記
public ResponseEntity createUser(@RequestBody @ApiParam(value = “user”, required = true) User user)
@ApiImplicitParam對容器的描述
@ApiResponse