優點:
可以生成文件形式的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...