首先建立乙個springboot專案,匯入web依賴。
新建成功之後再將兩個swagger依賴導進去,依賴如下:
io.springfox
springfox-swagger2
2.9.2
io.springfox
springfox-swagger-ui
2.9.2
新建swagger2配置類,通過註解@configuration註冊為bean讓spring管理:
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import springfox.documentation.builders.apiinfobuilder;
import springfox.documentation.builders.pathselectors;
import springfox.documentation.builders.requesthandlerselectors;
import springfox.documentation.service.apiinfo;
import springfox.documentation.spi.documentationtype;
import springfox.documentation.spring.web.plugins.docket;
@configuration
public class swagger2
private apiinfo apiinfo()
}現在springboot整合swagger2已經完成,寫乙個測試介面測試一下:
import io.swagger.annotations.api;
import io.swagger.annotations.apiimplicitparam;
import io.swagger.annotations.apioperation;
import org.springframework.web.bind.annotation.restcontroller;
/*** @author fengz
* @date 2020/9/30 11:28
*/@restcontroller
@api
public class test }
啟動專案,然後瀏覽器訪問 http://localhost:8080/swagger-ui.html#/
至此,springboot整合swagger2流程完成。
swagger通過註解表明該介面會生成文件,包括介面名、請求方法、引數、返回資訊的等等。
@api:修飾整個類,描述controller的作用
@apioperation:描述乙個類的乙個方法,或者說乙個介面
@apiparam:單個引數描述
@apimodel:用物件來接收引數
@apiproperty:用物件接收引數時,描述物件的乙個字段
@apiresponse:http響應其中1個描述
@apiresponses:http響應整體描述
@apiignore:使用該註解忽略這個api
@apierror :發生錯誤返回的資訊
@apiimplicitparam:乙個請求引數
@apiimplicitparams:多個請求引數
常用的註解和屬性有如下:
@api:用在請求的類上,表示對類的說明
tags="說明該類的作用,可以在ui介面上看到的註解"
value="該引數沒什麼意義,在ui介面上也看到,所以不需要配置"
@apioperation:用在請求的方法上,說明方法的用途、作用
value="說明方法的用途、作用"
notes="方法的備註說明"
@apiimplicitparams:用在請求的方法上,表示一組引數說明
@apiimplicitparam:用在@apiimplicitparams註解中,指定乙個請求引數的各個方面
name:引數名
value:引數的漢字說明、解釋
required:引數是否必須傳
paramtype:引數放在哪個地方
· header --> 請求引數的獲取:@requestheader
· query --> 請求引數的獲取:@requestparam
· path(用於restful介面)--> 請求引數的獲取:@pathvariable
· body(不常用)
· form(不常用)
datatype:引數型別,預設string,其它值datatype="integer"
defaultvalue:引數的預設值
@apiresponses:用在請求的方法上,表示一組響應
@apiresponse:用在@apiresponses中,一般用於表達乙個錯誤的響應資訊
code:數字,例如400
message:資訊,例如"請求引數沒填好"
response:丟擲異常的類
@apimodel:用於響應類上,表示乙個返回響應資料的資訊
(這種一般用在post建立的時候,使用@requestbody這樣的場景,
請求引數無法使用@apiimplicitparam註解進行描述的時候)
@apimodelproperty:用在屬性上,描述響應類的屬性
SpringBoot開發案例之整合Swagger篇
前段時間整合過的乙個支付服務,由於使用了spring boot快速開發,但是又懶得寫詳細的文件介紹,便順手就把swagger整合進來了,對支付服務進行分組api展示,如上圖。我有幾張阿里雲幸運券分享給你,用券購買或者公升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,馬上就要...
SpringBoot開發案例之整合Swagger篇
前段時間整合過的乙個支付服務,由於使用了spring boot快速開發,但是又懶得寫詳細的文件介紹,便順手就把swagger整合進來了,對支付服務進行分組api展示,如上圖。swagger 是乙個規範和完整的框架,用於生成 描述 呼叫和視覺化 restful 風格的 web 服務。總體目標是使客戶端...
SpringBoot如何優雅地使用Swagger2
spring boot 框架是目前非常流行的微服務框架,我們很多情況下使用它來提供 rest api。而對於 rest api 來說很重要的一部分內容就是文件,swagger 為我們提供了一套通過 和註解自動生成文件的方法,這一點對於保證 api 文件的及時性將有很大的幫助。本文將使用 swagge...