swagger2的簡單使用

2022-08-22 17:21:13 字數 3051 閱讀 3339

優點:

可以生成文件形式的api並提供給不同的團隊使用

便於自己單測

無需過多冗餘的word文件,這一點很重要,因為我在工作中就遇到這麼乙個情況,由於開發使用的文件和最新文件版本導致不一致,導致後期很煩人

=使用swagger流程=

1.引入pom依賴

io.springfox

springfox-swagger2

2.4.0

io.springfox

springfox-swagger-ui

2.4.0

2.新建swagger2配置類

new class swagger2

@configuration //使用配置類註解

@enableswagger2 //啟用這個配置類

public class swagger2

/*** @description: 構建 api文件的資訊

*/private apiinfo apiinfo()

}

3.配置controller類,方法和實體類

3.1對於某乙個controller新增乙個api====@api

@api:用在請求的類上,表示對類的說明

- tags="說明該類的作用,可以在ui介面上看到的註解"

- value="該引數沒什麼意義,在ui介面上也看到,所以不需要配置"

案例:@api(value = "使用者註冊登入介面",tags = )

public class usercontroller{}

3.2對於controller不同的介面(方法)進行定義==@apioperation

@apioperation:用在請求的方法上,說明方法的用途、作用

- value="說明方法的用途、作用"

- notes="方法的備註說明"

案例:@apioperation(value = "使用者註冊介面", notes="這是使用者註冊的介面,隨便寫都可以")

public serverresponse register(@requestbody users user)

方法引數的問題:上面的是@requestbody這樣的場景,有的時候就是乙個個引數 (string userid,string fanid)

我們就可以使用@apiimplicitparams來定義引數

@apiimplicitparams:用在請求的方法上,表示一組引數說明

- @apiimplicitparam:用在@apiimplicitparams註解中,指定乙個請求引數的各個方面

- name:引數名

- value:引數的漢字說明、解釋

- required:引數是否必須傳

- paramtype:引數放在哪個地方

header --> 請求引數的獲取:@requestheader

query --> 請求引數的獲取:@requestparam

path(用於restful介面)--> 請求引數的獲取:@pathvariable

body(不常用)

form(不常用)

- datatype:引數型別,預設string,其它值datatype="integer"

- defaultvalue:引數的預設值

案例:@apioperation(value="使用者頭像上傳", notes="使用者頭像上傳介面")

@apiimplicitparam(name="userid", value="使用者id", required=true,

datatype="string", paramtype="query")

public serverresponse uploadicon(string userid,@requestparam("file") multipartfile files) throws ioexception

上面這樣基本配置之後其實也是可以進行執行的,但是我們更好的是可以對傳入的users引數做一些限制,例如,傳入的username引數字段不能為空等

操作: 跟進users這個實體類進行配置

因為users是乙個實體,所以就要定義為@apimodel

@apimodel:用於響應類上,表示乙個返回響應資料的資訊

這種一般用在post建立的時候,使用@requestbody這樣的場景

請求引數無法使用@apiimplicitparam註解進行描述的時候)

案例:@apimodel(value = "使用者物件,這裡是解釋",description = "這是使用者物件,這裡是描述")

public class users {}

實體類上字段的處理

=前端必須傳入過來的字段情況=@apimodelproperty

//使用者名字段

@apimodelproperty(value = "使用者名稱",name = "username",example = "liuge36",required = true)

private string username;

//前端傳過來的密碼字段

@apimodelproperty(value = "密碼",name = "password",example = "123456",required = true)

private string password;

====前端不需要傳入過來的字段情況,不需要顯示 @apimodelproperty(hidden = true)

@apimodelproperty(hidden = true)

private string id;

這樣就不會顯示出來了

===到這裡,基本的使用就到位了,後期有機會跟新更多swagger2的用法

Swagger2使用記錄

configuration public class swagger2 private apiinfo apiinfo enableswagger2 public static void main string args io.springfox springfox swagger2 2.9.2 i...

swagger2 常用註解的使用

一 api 效果 api註解放在類上面,這裡的value是沒用的,tags表示該controller的介紹。二 apioperation 效果 apioperation註解用於放在方法上面,其中value是該類的簡短的敘述,notes一般是該方法的詳細描述。三 apiimplicitparam 與 ...

springboot搭建swagger2超簡單

必須使用以下配置開啟swagger服務 enableswagger2 configuration enableswagger2 public class swaggerconfig implements webmvcconfigurer private apiinfo apiinfo api tag...