SpringBoot3.x整合swagger的實現(xiàn)示例
零、提示
由于SpringBoot以及swagger的版本更新迭代得都比較快,因此當你采用最新版SpringBoot時,最好也使用最新版的swagger依賴。依賴在下面的網(wǎng)址進行查找,輸入對應(yīng)的artifactId就可以找到了
https://mvnrepository.com/
一、簡介
官網(wǎng):https://swagger.io/
對于SpringBoot而言,Swagger的作用是通過后端SpringBoot代碼快速生成接口文檔,方便測試接口以及前端使用。
二、基本使用
由于springfox不適用于SpringBoot3.x,故使用Springdoc進行代替。
1. 引入依賴
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.6.0</version> </dependency>
2. 其它相關(guān)依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 讓響應(yīng)結(jié)果更美觀 --> <dependency> <groupId>com.alibaba.cola</groupId> <artifactId>cola-component-dto</artifactId> <version>4.3.2</version> </dependency>
2. 編寫配置文件
添加 swagger 的配置文件 SwaggerConfig.java
@Configuration public class SwaggerConfig { }
此時Swagger已經(jīng)簡單整合成功,運行SpringBoot服務(wù),瀏覽器打開網(wǎng)址進行測試
http://localhost:8080/swagger-ui/index.html
我使用的是8081端口,因此我使用下面的鏈接打開
http://localhost:8081/swagger-ui/index.html
3. 配置Swagger文檔基本信息
@Configuration public class SwaggerConfig { /* 配置swagger基本信息 */ @Bean public OpenAPI swaggerOpenApi() { return new OpenAPI() .info(new Info().title("Swagger學(xué)習(xí)-比晚風(fēng)溫柔") .description("Swagger簡單入門") .version("v1.0")) .externalDocs(new ExternalDocumentation() .description("我的博客") .url("https://blog.csdn.net/2202_76007821?spm=1000.2115.3001.5343")); } }
此時重新運行服務(wù),打開網(wǎng)址
http://localhost:8081/swagger-ui/index.html
4. 控制 Swagger 的開啟
在開發(fā)或者測試環(huán)境下,我們開啟 swagger 會方便前端和后端的交互,但是如果在生產(chǎn)環(huán)境下也開啟 swagger 的話,是會將接口暴露出去的,有極大風(fēng)險,如何讓 swagger 根據(jù)不同的環(huán)境來決定是否開啟?
這里我準備了四個項目的配置文件,dev
、prod
兩個環(huán)境的配置文件僅是端口上的不同
application.yml -------------------------- 全局配置文件
application-dev.yml -------------------- 開發(fā)環(huán)境配置文件
application-prod.yml -------------------- 生產(chǎn)環(huán)境配置文件
application-dev.yml配置
springdoc: api-docs: enabled: true # 開啟OpenApi接口 swagger-ui: enabled: true # 開啟swagger界面,依賴OpenApi,需要OpenApi同時開啟
application-prod.yml配置
springdoc: api-docs: enabled: false # 關(guān)閉OpenApi接口 swagger-ui: enabled: false # 關(guān)閉swagger界面
application.yml
內(nèi)容如下,用于指定選擇的環(huán)境:
spring: profiles: active: dev
在 application.yml
全局配置文件中環(huán)境指向 dev
時,是可以打開 swagger 的
如果我將 application.yml
全局配置文件中環(huán)境指向 prod
時,就不能打開 swagger 了
5. 完善Swagger文檔
5.1 實體類添加Swagger注解
@Component @Schema(title = "水果類") public class Fruit { @Schema(title = "水果名稱",example = "塔菲新式番茄",minLength = 1,maxLength = 100) private String name; @Schema(title = "水果數(shù)量",example = "520") private Integer num ; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getNum() { return num; } public void setNum(Integer num) { this.num = num; } }
@Schema: Swagger文檔的注解,用于說明類/字段
- title: 類/字段說明
- example: 示例,Swagger中會將這個字段作為示例
- minLength/maxLength: 最小/最大長度,字段為String類型時生效(僅用于文檔說明,不會拋出異常)
5.2 控制器注解解析
@RestController @RequestMapping("/fruit") @Tag(name = "水果控制器",description = "這是水果測試接口") public class FruitController { @PostMapping("/add") @Operation(summary = "新增水果",description = "這是新增水果的方法") public String add(Fruit fruit) { return "新增成功"; } }
- @Tag: 控制器說明
- name: 名稱
- description: 描述說明
- @Operation: 請求說明
- summary: 說明,Swagger頁面在方法后面,不會被折疊
- descirption: 描述,會被折疊到方法說明中
配置之后,讓我們打開網(wǎng)址查看一下
6. 接口調(diào)用
點擊進行測試
測試成功
三、使用postman進行接口測試
1. 導(dǎo)入鏈接
回到文檔頭部,點擊api-docs
復(fù)制鏈接
打開postman,點擊import
選擇第二個進行導(dǎo)入
baseurl問題使用環(huán)境進行統(tǒng)一修改即可,點擊創(chuàng)建新環(huán)境
手動修改參數(shù)
點擊進行測試
四、代碼
代碼已經(jīng)上傳到gitee,打開網(wǎng)址,點擊下載zip即可
https://gitee.com/guirongyuan/swagger-leaning
到此這篇關(guān)于SpringBoot3.x整合swagger的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)SpringBoot3.x整合swagger內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Springboot整合Swagger3全注解配置(springdoc-openapi-ui)
- SpringBoot整合Swagger3生成接口文檔過程解析
- Springboot整合Swagger2后訪問swagger-ui.html 404報錯問題解決方案
- SpringBoot整合Swagger3生成接口文檔的示例代碼
- Springboot整合Swagger2和Swagger3全過程
- springboot整合swagger3和knife4j的詳細過程
- SpringBoot整合Swagger的方法示例
- SpringBoot整合swagger的操作指南
- SpringBoot整合Swagger接口文檔工具的流程步驟
- SpringBoot整合Swagger教程詳解
相關(guān)文章
java中mybatis和hibernate的用法總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于java中mybatis和hibernate的用法總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。2021-01-01RequestContextHolder.getRequestAttributes()空指針問題及解決
這篇文章主要介紹了RequestContextHolder.getRequestAttributes()空指針問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01ConcurrentHashMap是如何實現(xiàn)線程安全的你知道嗎
這篇文章主要介紹了ConcurrentHashMap是如何實現(xiàn)線程安全的你知道嗎,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10詳解Http請求中Content-Type講解以及在Spring MVC中的應(yīng)用
這篇文章主要介紹了Http請求中Content-Type講解以及在Spring MVC中的應(yīng)用的相關(guān)資料,需要的朋友可以參考下2017-02-02springboot starter介紹與自定義starter示例詳解
Spring Boot 的 Starter 是一組比較方便的依賴描述符,可以通過 Maven 將其打成jar包,并在你的項目中直接引用,這篇文章主要介紹了springboot starter介紹與自定義starter示例,需要的朋友可以參考下2025-05-05SpringCloud環(huán)境搭建過程之Rest使用小結(jié)
這篇文章主要介紹了SpringCloud環(huán)境搭建之Rest使用,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08