簡介:swagger是一種rest api的 簡單但強大的表示方式,標準的,語言無關,這種 表示方式不但人可讀,而且機器可讀。 可以作為rest api的互動式文件,也可以作為rest api的形式化的介面描述,生成客戶端和服務端的**。
下面結合比較常見的場景,大概說下在springboot下如何使用swagger來管理介面,以便前後端開發人員能夠很好的做介面的對接,同時也利於介面的後續維護開發。
1. 在pom.xml引入swagger所需依賴包:
12.指定swagger的一些靜態資源檔案配置,一般用乙個類來管理維護2<
dependency
>
3<
groupid
>io.springfox
groupid
>
4<
artifactid
>springfox-swagger2
artifactid
>
5dependency
>67
<
dependency
>
8<
groupid
>io.springfox
groupid
>
9<
artifactid
>springfox-swagger-ui
artifactid
>
10dependency
>
11
swagger2configuration.class
13. 如何使用?import org.springframework.context.annotation.bean;
2import org.springframework.context.annotation.configuration;
3import springfox.documentation.builders.apiinfobuilder;
4import springfox.documentation.builders.pathselectors;
5import springfox.documentation.builders.requesthandlerselectors;
6import springfox.documentation.service.apiinfo;
7import springfox.documentation.spi.documentationtype;
8import springfox.documentation.spring.web.plugins.docket;
9import springfox.documentation.swagger2.annotations.enableswagger2;
1011
12 @configuration
13 @enableswagger2
14public
class swagger2configuration
2425
private apiinfo apiinfo()
3334 }
這一步我會用比較常見的業務場景去描述介面:
其實通過單獨建乙個api介面讓controller去實現它,避免大量註解內容讓controller看著太亂
這裡直接在controller層(類)上這樣註解
1 @api(value = "swagger介面")其中user類如下:2 @restcontroller
4public
class swaggercontroller)
13public user find (@modelattribute user user)
16 }
1user類是對應查詢條件或查詢結果組成的實體~,每個屬性需要用@apimodelproperty去描述每個欄位的含義;user類上的@apimodel註解可以選擇性給出。//@apimodel(value="user", description="使用者物件")
2public
class user
12public
void setname(string name)
15public
void setage(long age)
18public long getid()
21public string getname()
24public long getage()
2728 }
2930
訪問swagger介面描述頁面只需啟動專案(這裡是springboot),然後輸入http://localhost:8080/swagger-ui.html#!即可訪問,我們點選對應的controller和介面,可以看到:
paramters就是描述輸入引數的區域,而response則是輸出的描述,response可以切換到model,可以看到輸出的字段的具體含義:
2)請求引數是復合的,這時候必須對應乙個實體類,如:
1返回是乙個集合型別://@apimodel(value="params", description="傳入引數")
2public
class params
1213
public
void setparam1(string param1)
1617
public listgetinput()
2021
public
void setinput(listinput)
2425 }
1 @apioperation(value="獲取使用者資訊集合", notes="根據輸入型別來獲取使用者資訊集合")3 @apiresponse(response = user.class, responsecontainer="list", code = 200, message = "請求成功")
4public listfind2(@apiparam(value="傳入引數型別", required=true) @requestbody params params)
可以看到,現在無論是對於介面裡再複雜的輸入和輸出,都能比較清楚地看到每個屬性(字段)的含義,以及可以在swagger的ui上直接用try it out 按鈕來測試介面的可用性。
swagger可以很好地幫助我們管理專案介面~,以及不同業務側之間的介面對接工作。
swagger管理後台介面
swagger 是乙個rest apis文件生成工具。1.swagger可是直接嵌入到專案中,在介面上加上介面的註解描述,自動生成介面文件。2.很方便管理和測試後台介面。下面是swagger的基礎配置 configuration enableswagger2 public class swagger...
Swagger介面文件
api 用在類上,說明該類的作用。apioperation 註解來給api增加方法說明。apiimplicitparams 用在方法上包含一組引數說明。apiimplicitparam 用來註解來給方法入參增加說明。apiresponses 用於表示一組響應 apiresponse 用在 apire...
swagger 介面測試
廢話不多說,直接上 1 pom 新增 io.springfox springfox swagger2 2.8.0 io.springfox springfox swagger ui 2.8.0 2 增加swaggerconfig package com.test.service1 date 2020...