swagger實踐 及一些踩過的坑
阿新 • • 發佈:2019-01-03
首先就是我們專案中用的swagger2,編輯的時候已經升級到3.0.0了
有空嘗試下。
然後至少要是個spring的專案,支援@configuration這個註解的版本,我們專案中用的spring4.1.0。
然後就是開開心心的碼程式碼了
@Configuration
@EnableWebMvc
@EnableSwagger2
@ComponentScan(
basePackages = {"com.dc.itil"} //swagger掃描的包
)
public class Swagger2 {
@Bean
ApiInfo apiInfo() {
ApiInfo apiInfo = new ApiInfo(
/*
"API Title",
"API Description",
"API Version",
"API terms of service",
"API Contact Email",
"API Licence Type",
"API License URL"); */
"ITIL3 API doc" ,
"",
"1.0",
"",
"",
"",
"" );
return apiInfo;
}
@Bean
public Docket customImplementation(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo());
}
}
寫好了配置類,需要加入一個展示api的頁面, swagger UI 這個很好用
看一下目錄結構,放在webapp下面,當然我這個是個maven專案
之後就是在介面上加上你的api描述了
啟動專案,訪問 doc資料夾 ,這時候出來的只是swagger的頁面 ,啥也沒有
只需要在這裡鍵入你的api資料地址就能找到。當然你也可以讓他初始化的時候就顯示,這樣更方便。
修改index.html中的,換成自己的
window.swaggerUi = new SwaggerUi({
url: url,
這樣就可以完美優雅的檢視介面文件,你之前寫的亂七八糟的介面命名也會清晰的暴露出來。
坑:
1. 首先就是我寫完配置類Swagger2 .java 之後,訪問doc是可以訪問的 就是出不來介面文件,這個時候千萬不能著急,仔細思考,我一看文件裡面標題也沒出來,我猜想是@configuration修飾的類沒起作用,果然在掃描包路徑中沒有新增
2. 當點選try it out之後發現訪問的路徑不對,這時候我審查元素了那個按鈕,發現baseURI有問題,這時候需要修改swagger-ui.js中的basepath為自己的專案後端介面路徑
this.basePath = response.basePath + "/api"|| '';
總結一下,這個真的很好用,尤其是前後端分離的專案,再也不用給前端大姐寫複雜介面文件了,再也不用為介面穩當改來改去費勁了