SpringBoot3集成swagger文檔的使用方法
一、前言
為了方便后端人員進(jìn)行進(jìn)行接口測(cè)試,swagger就此誕生
1. API 文檔自動(dòng)生成
- 減少文檔編寫(xiě)工作:通過(guò)在代碼中使用注解,Swagger 可以自動(dòng)生成詳細(xì)的 API 文檔,減少了手動(dòng)編寫(xiě)文檔的工作量。
- 保持文檔與代碼同步:由于文檔是直接從代碼生成的,因此可以確保文檔總是與實(shí)際的 API 實(shí)現(xiàn)保持一致。
2. 交互式 API 測(cè)試
實(shí)時(shí)測(cè)試 API:Swagger UI 提供了一個(gè)基于瀏覽器的界面,允許開(kāi)發(fā)者直接從瀏覽器調(diào)用 API 并查看響應(yīng)結(jié)果,這有助于快速測(cè)試 API 功能。
參數(shù)輸入與驗(yàn)證:用戶(hù)可以直接在界面上輸入?yún)?shù)并發(fā)送請(qǐng)求,Swagger 會(huì)自動(dòng)處理參數(shù)格式和驗(yàn)證。
3. API 設(shè)計(jì)和開(kāi)發(fā)協(xié)作
- 統(tǒng)一的 API 規(guī)范:Swagger 使用 OpenAPI 規(guī)范(以前稱(chēng)為 Swagger 規(guī)范),這是一種標(biāo)準(zhǔn)的 API 描述格式,使得團(tuán)隊(duì)成員可以更容易理解和遵循 API 設(shè)計(jì)。
- 前后端分離開(kāi)發(fā):前端和后端開(kāi)發(fā)者可以通過(guò) Swagger 文檔進(jìn)行溝通,即使在后端 API 還未完成時(shí),前端也可以開(kāi)始基于文檔進(jìn)行開(kāi)發(fā)。
二、使用方法
1.導(dǎo)入依賴(lài)
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.15.2</version>
</dependency>2.文檔配置
import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class OpenApiConfig {
@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
// 接口文檔標(biāo)題
.info(new Info().title("在線(xiàn)考試系統(tǒng)API接口文檔")
// 接口文檔簡(jiǎn)介
.description("這是基于Knife4j OpenApi3的在線(xiàn)考試系統(tǒng)接口文檔")
// 接口文檔版本
.version("v1.0")
// 開(kāi)發(fā)者聯(lián)系方式
.contact(new Contact().name("黃宏保").email("3111871135@qq.com")))
.externalDocs(new ExternalDocumentation()
.description("在線(xiàn)考試系統(tǒng)接口文檔")//swagger-ui文檔地址
.url("http://127.0.0.1:8088"));
}
@Bean
public GroupedOpenApi adminApi() {
return GroupedOpenApi.builder().group("管理員管理模塊")
.pathsToMatch("/user/**","/admin/**")
.build();
}
@Bean
public GroupedOpenApi teacherApi() {
return GroupedOpenApi.builder().group("教師管理模塊")
.pathsToMatch("/user/**", "/teacher/**")
.build();
}
@Bean
public GroupedOpenApi studentApi() {
return GroupedOpenApi.builder().group("學(xué)生管理模塊")
.pathsToMatch("/user/**", "/student/**")
.build();
}
}application.yaml配置
springdoc:
swagger-ui:
path: /swagger-ui.html # 自定義Swagger前端請(qǐng)求路徑
tags-sorter: alpha
operations-sorter: alpha
api-docs:
path: /v3/api-docs # Swagger后端請(qǐng)求地址
enabled: true # 是否開(kāi)啟文檔功能
# knife4j相關(guān)配置
knife4j:
enable: true # 開(kāi)啟knife4j,無(wú)需添加@EnableKnife4j注解
setting:
language: zh_cn # 中文3.常見(jiàn)注解
@Tag(name = "用戶(hù)管理")//用于在控制器類(lèi)上標(biāo)注,指示該控制器的相關(guān)信息 @Operation(summary = "登錄")//用于在控制器方法上標(biāo)注,指示該方法的作用、描述等 @Schema(description = "用戶(hù)信息")//在DTO類(lèi)上標(biāo)注,用于描述一個(gè)實(shí)體類(lèi) @Schema(description = "用戶(hù)信息")//用于描述實(shí)體類(lèi)的屬性(自己定義的接收變量),即類(lèi)的字段 @Parameter(description = "郵箱") //定義在控制層方法的參數(shù)上
4.效果展示


5.訪(fǎng)問(wèn)路徑
swagger-ui路徑:http://localhost:8080/swagger-ui/index.html
swagger文檔路徑:http://127.0.0.1:8080/doc.html#/home
到此這篇關(guān)于SpringBoot3集成swagger文檔的文章就介紹到這了,更多相關(guān)SpringBoot3集成swagger文檔內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Springboot整合Swagger2后訪(fǎng)問(wèn)swagger-ui.html 404報(bào)錯(cuò)問(wèn)題解決方案
- Springboot下swagger-ui.html訪(fǎng)問(wèn)不到的解決方案
- SpringBoot3整合Swagger3時(shí)出現(xiàn)Type javax.servlet.http.H的ttpServletRequest not present錯(cuò)誤解決方法
- SpringBoot和Springfox(Swagger)版本不兼容的解決方案
- SpringBoot整合Swagger頁(yè)面禁止訪(fǎng)問(wèn)swagger-ui.html方式
相關(guān)文章
舉例講解Java設(shè)計(jì)模式編程中Decorator裝飾者模式的運(yùn)用
這篇文章主要介紹了Java設(shè)計(jì)模式編程中Decorator裝飾者模式的運(yùn)用,裝飾者模式就是給一個(gè)對(duì)象動(dòng)態(tài)的添加新的功能,裝飾者和被裝飾者實(shí)現(xiàn)同一個(gè)接口,裝飾者持有被裝飾者的實(shí)例,需要的朋友可以參考下2016-05-05
為什么Spring和IDEA都不推薦使用 @Autowired 注解
本文主要介紹了為什么Spring和IDEA都不推薦使用 @Autowired 注解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
SpringBoot注解@Import原理之關(guān)于ConfigurationClassPostProcessor源碼解析
這篇文章主要介紹了SpringBoot注解@Import原理之關(guān)于ConfigurationClassPostProcessor源碼解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
org.apache.ibatis.binding.BindingException異常報(bào)錯(cuò)原因以及詳細(xì)解決方案
這篇文章主要給大家介紹了關(guān)于org.apache.ibatis.binding.BindingException異常報(bào)錯(cuò)原因以及詳細(xì)解決方案的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
解決Maven中的依賴(lài)導(dǎo)包問(wèn)題(組合技巧)
自從我開(kāi)始接觸了以spring為框架的項(xiàng)目學(xué)習(xí)后,這個(gè)maven導(dǎo)包老是出現(xiàn)問(wèn)題,每次在這個(gè)上面花費(fèi)好多時(shí)間,于是乎打算寫(xiě)一個(gè)秘籍出來(lái),這篇文章主要介紹了解決Maven中的依賴(lài)導(dǎo)包問(wèn)題,需要的朋友可以參考下2023-11-11
Java之synchronized(含與ReentrantLock的區(qū)別解讀)
文章主要介紹了`synchronized`和`ReentrantLock`的區(qū)別,包括它們的實(shí)現(xiàn)原理、公平性、靈活性、可中斷性等方面,同時(shí),文章詳細(xì)解釋了`synchronized`的使用方法,包括修飾實(shí)例方法、靜態(tài)方法和代碼塊的情況,以及如何分析代碼是否互斥和可重入性2025-01-01
Java字符流和字節(jié)流對(duì)文件操作的區(qū)別
本篇文章主要介紹了Java的IO流分為字符流(Reader,Writer)和字節(jié)流(InputStream,OutputStream),字節(jié)流顧名思義字節(jié)流就是將文件的內(nèi)容讀取到字節(jié)數(shù)組,對(duì)初學(xué)者很有用,有需要的朋友可以了解一下。2016-10-10

