一篇文章帶你搞定 SpringBoot 整合 Swagger2
一、建立工程
建立 SpringBoot 工程專案,建立時只需要加入
spring-boot-starter-web
依賴即可,
Maven 倉庫搜尋 Swagger2 依賴:
二、Swagger2 配置
Swagger2的配置也是比較容易的,在專案建立成功之後,只需要開發者自己提供一個Docket的Bean即可,如下:
這裡提供一個配置類,首先透過
@EnableSwagger2WebFlux
註解啟用
Swagger2
,然後配置一個Docket Bean,這個Bean中,配置對映路徑和要掃描的介面的位置,在apiInfo中,主要配置一下Swagger2文件網站的資訊,例如網站的title,網站的描述,聯絡人的資訊,使用的協議等等。
三、簡單示例
(1)定義 User
(2)定義 Controller
在這種 restful 風格的程式碼裡,需要明確指定介面是什麼請求(get/post 等),不能直接寫成
requestMapping
,不然前端會生成6個方法,get,post 等都能發,會比較混亂。
啟動專案,訪問:
也可以配置成中文描述
四、中文配置案例
(1)對於引數的描述可以放在實體類中
(2)建立介面
(1)
@Api
註解可以用來標記當前Controller
的功能。
(2)@ApiOperation
註解用來標記一個方法的作用。
(3)@ApiImplicitParam
註解用來描述一個引數,可以配置引數的中文含義,也可以給引數設定預設值,這樣在介面測試的時候可以避免手動輸入。
(4)如果有多個引數,則需要使用多個@ApiImplicitParam
註解來描述,多個@ApiImplicitParam
註解需要放在一個@ApiImplicitParams
註解中。
(5)需要注意的是,@ApiImplicitParam
註解中雖然可以指定引數是必填的,但是卻不能代替@RequestParam(required = true)
,前者的必填只是在Swagger2框架內必填,拋棄了Swagger2,這個限制就沒用了,所以假如開發者需要指定一個引數必填,@RequestParam(required = true)
註解還是不能省略。
(3)效果展示 /henan/
可以看到,所有的介面這裡都列出來了,包括介面請求方式,介面地址以及介面的名字等,點開一個介面,可以看到如下資訊:
jiyuan/
可以看到,介面的引數,引數要求,引數預設值等等統統都展示出來了,引數型別下的
query
表示引數以
key/value
的形式傳遞,點選右上角的
Try it out
,就可以進行介面測試:
點選Execute按鈕,表示傳送請求進行測試。測試結果會展示在下面的Response中。
小夥伴們注意,引數型別下面的
query
表示引數以
key/value
的形式傳遞,這裡的值也可能是
body
,
body
表示引數以請求體的方式傳遞,例如上文的更新介面,如下:
/question/
當然還有一種可能就是這裡的引數為path,表示引數放在路徑中傳遞,例如根據id查詢使用者的介面:
五、在 Security 中的配置
如果我們的Spring Boot專案中整合了Spring Security,那麼如果不做額外配置,Swagger2文件可能會被攔截,此時只需要在Spring Security的配置類中重寫configure方法,新增如下過濾即可:
如此之後,Swagger2檔案就不需要認證就能訪問了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2729638/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一篇文章帶你搞定經典面試題之扔雞蛋問題面試題
- MySQL命令,一篇文章替你全部搞定MySql
- springboot整合swagger2Spring BootSwagger
- 一篇文章帶你吃透 Docker 原理Docker
- 一篇文章帶你入門Zookeeper
- 一篇文章帶你認識 SpringSecuritySpringGse
- 一篇文章搞定前端面試前端面試
- SpringBoot整合Swagger2及使用Spring BootSwagger
- 一篇文章帶你快速入門createjsJS
- 一篇文章搞定 MySQL 索引優化MySql索引優化
- 一篇文章搞定javascript氣泡排序JavaScript排序
- 一篇文章帶你初步瞭解—CSS特指度CSS
- 一篇文章帶你瞭解和使用Promise物件Promise物件
- 一篇文章帶你瞭解HTML5 MathMLHTML
- 一篇文章帶你讀懂Redis的哨兵模式Redis模式
- # 一篇文章帶你入門軟體測試
- MySQL十種鎖,一篇文章帶你全解析MySql
- 一篇文章帶你瞭解——Kotlin協程Kotlin
- 一篇文章帶你瞭解介面自動化
- 一篇文章帶你掌握效能測試工具——JmeterJMeter
- 一篇文章帶你弄懂Kerberos的設計思路ROS
- 一篇文章帶你玩轉正規表示式
- 一篇文章帶你搞定 SpringSecurity 配置多個HttpSecurity 和實現對於方法安全的控制SpringGseHTTP
- 教你如何搞定springboot整合kafkaSpring BootKafka
- SpringBoot 就這一篇全搞定Spring Boot
- 一篇文章帶你瞭解HTML格式化元素HTML
- 一篇文章帶你瞭解CSS 分頁例項CSS
- 一篇文章帶你搞懂 etcd 3.5 的核心特性
- 一篇文章帶你吃透hashmap(面試指南升級版)HashMap面試
- 一篇文章帶你入門SQL程式設計GIFUSQL程式設計
- 一篇文章帶你瞭解高可用架構分析架構
- 一篇文章搞定 javascript 正規表示式JavaScript
- 一篇文章搞定Python多程式(全)Python
- 一篇文章搞定Python中的類Python
- 一篇文章搞定密碼學基礎密碼學
- 一篇文章帶你掌握Flex佈局的所有用法Flex
- 一篇文章帶你瞭解設計模式——建立者模式設計模式
- Springboot整合Swagger2無法正常啟動Spring BootSwagger