本文來自網易雲社區。
1、什么是SpringFox?
1.1 Springfox
是一個開源的API Doc的框架, 它的前身是swagger-springmvc,可以將我們的Controller中的方法以文檔的形式展現。官方定義為: Automated JSON API documentation for API's built with Spring。
1.2 Swagger
那Swagger又是什么哩? 官方說法:Swagger是一個規范和完整的框架,用於生成、描述、調用和可視化 RESTful 風格的 Web 服務。總體目標是使客戶端和文件系統作為服務器以同樣的速度來更新。文件的方法,參數和模型緊密集成到服務器端的代碼,允許API來始終保持同步。
2、SpringFox能做什么?
- 首先、使前端和后端更加解耦,前后端的對接通常是API形式,而后端開發人員在開發的過程中,提供的API和描述文檔卻是難以同步的,往往是開發代碼完成了,但文檔描述並不及時,甚至會忘記這一環節,導致前端調用API時經常發生錯誤,因此,springfox應運而生,它將前后端有效分離,並保證了API與文檔的實時同步;
- 其次、使用springfox生成的接口文檔直觀可視,也幫助后端開發人員脫離了寫接口文檔的痛苦,及避免不厭其煩的解說各個接口需要的參數和返回結果;
- 再次、springfox支持在線測試,可實時檢查參數和返回值。
3、怎么使用SpringFox?
現在,基於maven框架創建一個簡單的springmvc項目,並以此為例來說明下springfox的使用。
3.1 基本依賴
springfox目前最新版本是2.6.1,在pom.xml中引入如下2個包
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version></dependency><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version></dependency>
同時、因為swagger需要jackson支持,故pom.xml中也要引入jackson關聯的包,當前最新版本是2.8.6
<!--jackson用於將springfox返回的文檔對象轉換成JSON字符串 --><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.8.6</version></dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.6</version></dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.8.6</version></dependency>
3.2 一個簡單的springmvc項目
1、如圖所示,一個簡單的springmvc項目結構:
2、web.xml配置文件如下:
3、springfox-test-servlet.xml配置文件如下:
4、swagger配置類SwaggerApiConfig.java, 在這里可以設置swaggerUI的頁面個性信息、加載類的過濾等,如圖示例:
5、最后,在Controller類中添加springfox注解
6、以上配置無誤的話,將項目放入Tomcat中啟動(或用maven的集成tomcat插件亦可),訪問頁面地址http://localhost:8088/springfox-test/swagger-ui.html,將會出現如下頁面。
7、展開這個接口,可以看到頁面清晰,說明詳細,而且還可以測試哦
以及 try it out!
4、參考文獻
springfox
本文來自網易雲社區,經作者鄭勤授權發布。
原文: SpringFox 初體驗
網易雲新用戶大禮包:https://www.163yun.com/gift
更多網易研發、產品、運營經驗分享請訪問網易雲社區。