前言
在前面的博客中,我們將服務注冊到了eureka上,可以從eureka的ui界面中,看到有哪些服務已經注冊到了eureka server上,但是,如果我們想查看當前服務提供了哪些restful接口方法的話,就無從獲取了,傳統的方法是梳理一篇服務的接口文檔來供開發人員之間來進行交流,這種情況下,很多時候,會造成文檔和代碼的不一致性,比如說代碼改了,但是接口文檔沒有改等問題,而swagger2則給我們提供了一套完美的解決方案,下面,我們來看看swagger2是如何來解決問題的。
一、引入swagger2依賴的jar包
1
2
3
4
5
6
7
8
9
10
11
|
<!-- swagger2 --> <dependency> <groupid>io.springfox</groupid> <artifactid>springfox-swagger2</artifactid> <version> 2.2 . 2 </version> </dependency> <dependency> <groupid>io.springfox</groupid> <artifactid>springfox-swagger-ui</artifactid> <version> 2.2 . 2 </version> </dependency> |
二、初始化swagger2的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
@configuration @enableswagger2 // 啟用swagger2 public class swagger2 { @bean public docket createrestapi() { // 創建api基本信息 return new docket(documentationtype.swagger_2) .apiinfo(apiinfo()) .select() .apis(requesthandlerselectors.basepackage( "com.chhliu.jpa" )) // 掃描該包下的所有需要在swagger中展示的api,@apiignore注解標注的除外 .paths(pathselectors.any()) .build(); } private apiinfo apiinfo() { // 創建api的基本信息,這些信息會在swagger ui中進行顯示 return new apiinfobuilder() .title( "spring boot中使用swagger2構建restful apis" ) // api 標題 .description( "rdcloud-jpa提供的restful apis" ) // api描述 .contact( "chhliu@" ) // 聯系人 .version( "1.0" ) // 版本號 .build(); } } |
注:該配置類需要在application同級目錄下創建,在項目啟動的時候,就初始化該配置類
三、完善api文檔信息
1
2
3
4
5
6
7
8
9
10
11
12
|
public interface sonarcontrolleri { @apioperation (value= "獲取項目組sonar對應的url信息" , notes= "根據id獲取項目組sonar對應的url信息" ) // 使用該注解描述接口方法信息 @apiimplicitparams ({ @apiimplicitparam (name = "id" , value = "sonarurl表id" , required = true , datatype = "long" , paramtype= "path" ) }) // 使用該注解描述方法參數信息,此處需要注意的是paramtype參數,需要配置成path,否則在ui中訪問接口方法時,會報錯 @getmapping ( "/get/{id}" ) sonarurl get( @pathvariable long id); @apioperation (value= "獲取項目組sonar對應的所有url信息" ) @getmapping ( "/get/all" ) list<sonarurl> getall(); } |
注:paramtype表示參數的類型,可選的值為"path","body","query","header","form"
四、完善返回類型信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
@entity (name = "sonar_url" ) public class sonarurl implements serializable { /** * */ private static final long serialversionuid = 1l; @apimodelproperty (value= "主鍵" , hidden= false , notes= "主鍵,隱藏" , required= true , datatype= "long" ) // 使用該注解描述屬性信息,當hidden=true時,該屬性不會在api中顯示 @id @generatedvalue (strategy = generationtype.auto) private long id; @apimodelproperty (value= "url鏈接地址" ) @column (name= "url" ) private string url; @apimodelproperty (value= "項目組" ) @column (name= "team" ) private string team; @apimodelproperty (value= "部門" ) @column (name= "department" ) private string department; ……省略getter,setter方法…… } |
五、啟動應用
1、在瀏覽器中輸入:http://localhost:7622/swagger-ui.html
2、結果如下:
六、api文檔訪問與測試
swagger除了提供api接口查看的功能外,還提供了調試測試功能
測試結果如下:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://blog.csdn.net/liuchuanhong1/article/details/58594045