欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot3集成swagger文檔的使用方法

 更新時間:2025年01月07日 09:49:42   作者:java_學習愛好者  
本文介紹了Swagger的誕生背景、主要功能以及如何在Spring Boot 3中集成Swagger文檔,Swagger可以幫助自動生成API文檔,實現(xiàn)與代碼同步,并提供交互式測試功能,使用方法包括導入依賴、配置文檔、使用常見注解以及訪問生成的Swagger UI和文檔,感興趣的朋友跟隨小編一起看看吧

一、前言

為了方便后端人員進行進行接口測試,swagger就此誕生

1. API 文檔自動生成

  • 減少文檔編寫工作:通過在代碼中使用注解,Swagger 可以自動生成詳細的 API 文檔,減少了手動編寫文檔的工作量。
  • 保持文檔與代碼同步:由于文檔是直接從代碼生成的,因此可以確保文檔總是與實際的 API 實現(xiàn)保持一致。

2. 交互式 API 測試

實時測試 API:Swagger UI 提供了一個基于瀏覽器的界面,允許開發(fā)者直接從瀏覽器調(diào)用 API 并查看響應結(jié)果,這有助于快速測試 API 功能。

參數(shù)輸入與驗證:用戶可以直接在界面上輸入?yún)?shù)并發(fā)送請求,Swagger 會自動處理參數(shù)格式和驗證。

3. API 設(shè)計和開發(fā)協(xié)作

  • 統(tǒng)一的 API 規(guī)范:Swagger 使用 OpenAPI 規(guī)范(以前稱為 Swagger 規(guī)范),這是一種標準的 API 描述格式,使得團隊成員可以更容易理解和遵循 API 設(shè)計。
  • 前后端分離開發(fā):前端和后端開發(fā)者可以通過 Swagger 文檔進行溝通,即使在后端 API 還未完成時,前端也可以開始基于文檔進行開發(fā)。

二、使用方法

1.導入依賴

        <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()
                // 接口文檔標題
                .info(new Info().title("在線考試系統(tǒng)API接口文檔")
                        // 接口文檔簡介
                        .description("這是基于Knife4j OpenApi3的在線考試系統(tǒng)接口文檔")
                        // 接口文檔版本
                        .version("v1.0")
                        // 開發(fā)者聯(lián)系方式
                        .contact(new Contact().name("黃宏保").email("3111871135@qq.com")))
                .externalDocs(new ExternalDocumentation()
                        .description("在線考試系統(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("學生管理模塊")
                .pathsToMatch("/user/**", "/student/**")
                .build();
    }
}

 application.yaml配置

springdoc:
  swagger-ui:
    path: /swagger-ui.html # 自定義Swagger前端請求路徑
    tags-sorter: alpha
    operations-sorter: alpha
  api-docs:
    path: /v3/api-docs # Swagger后端請求地址
    enabled: true # 是否開啟文檔功能
# knife4j相關(guān)配置
knife4j:
  enable: true # 開啟knife4j,無需添加@EnableKnife4j注解
  setting:
    language: zh_cn # 中文

3.常見注解

@Tag(name = "用戶管理")//用于在控制器類上標注,指示該控制器的相關(guān)信息
@Operation(summary = "登錄")//用于在控制器方法上標注,指示該方法的作用、描述等
@Schema(description = "用戶信息")//在DTO類上標注,用于描述一個實體類
@Schema(description = "用戶信息")//用于描述實體類的屬性(自己定義的接收變量),即類的字段
@Parameter(description = "郵箱") //定義在控制層方法的參數(shù)上

4.效果展示

5.訪問路徑

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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 舉例講解Java設(shè)計模式編程中Decorator裝飾者模式的運用

    舉例講解Java設(shè)計模式編程中Decorator裝飾者模式的運用

    這篇文章主要介紹了Java設(shè)計模式編程中Decorator裝飾者模式的運用,裝飾者模式就是給一個對象動態(tài)的添加新的功能,裝飾者和被裝飾者實現(xiàn)同一個接口,裝飾者持有被裝飾者的實例,需要的朋友可以參考下
    2016-05-05
  • 為什么Spring和IDEA都不推薦使用 @Autowired 注解

    為什么Spring和IDEA都不推薦使用 @Autowired 注解

    本文主要介紹了為什么Spring和IDEA都不推薦使用 @Autowired 注解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • SpringBoot注解@Import原理之關(guān)于ConfigurationClassPostProcessor源碼解析

    SpringBoot注解@Import原理之關(guān)于ConfigurationClassPostProcessor源碼解析

    這篇文章主要介紹了SpringBoot注解@Import原理之關(guān)于ConfigurationClassPostProcessor源碼解析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • org.apache.ibatis.binding.BindingException異常報錯原因以及詳細解決方案

    org.apache.ibatis.binding.BindingException異常報錯原因以及詳細解決方案

    這篇文章主要給大家介紹了關(guān)于org.apache.ibatis.binding.BindingException異常報錯原因以及詳細解決方案的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • MyBatis配置不同級別的日志輸出

    MyBatis配置不同級別的日志輸出

    MyBatis提供多種日志框架集成,如SLF4J、Log4j2、Logback等,通過配置日志框架和調(diào)整日志級別,可以實現(xiàn)詳細的SQL日志記錄,本文就來介紹一下,感興趣的可以了解一下
    2024-12-12
  • Java深入分析與解決Top-K問題

    Java深入分析與解決Top-K問題

    TopK問題即在N個數(shù)中找出最大的前K個,這篇文章將詳細講解三種方法解決TopK問題,文中代碼具有一定參考價值,快跟隨小編一起學習一下吧
    2022-04-04
  • SpringBoot配置系統(tǒng)全局異常映射處理

    SpringBoot配置系統(tǒng)全局異常映射處理

    在項目開發(fā)中,肯定少不了異常的出現(xiàn),作為后臺開發(fā)人員,我們總是在不停的寫各種接口提供給前端調(diào)用,然而不可避免的,當后臺出現(xiàn)BUG時,前端總是丑陋的講錯誤信息直接暴露給用戶,這樣的用戶體驗想必是相當差的,本文主要講解異常映射的配置
    2021-06-06
  • 解決Maven中的依賴導包問題(組合技巧)

    解決Maven中的依賴導包問題(組合技巧)

    自從我開始接觸了以spring為框架的項目學習后,這個maven導包老是出現(xiàn)問題,每次在這個上面花費好多時間,于是乎打算寫一個秘籍出來,這篇文章主要介紹了解決Maven中的依賴導包問題,需要的朋友可以參考下
    2023-11-11
  • Java之synchronized(含與ReentrantLock的區(qū)別解讀)

    Java之synchronized(含與ReentrantLock的區(qū)別解讀)

    文章主要介紹了`synchronized`和`ReentrantLock`的區(qū)別,包括它們的實現(xiàn)原理、公平性、靈活性、可中斷性等方面,同時,文章詳細解釋了`synchronized`的使用方法,包括修飾實例方法、靜態(tài)方法和代碼塊的情況,以及如何分析代碼是否互斥和可重入性
    2025-01-01
  • Java字符流和字節(jié)流對文件操作的區(qū)別

    Java字符流和字節(jié)流對文件操作的區(qū)別

    本篇文章主要介紹了Java的IO流分為字符流(Reader,Writer)和字節(jié)流(InputStream,OutputStream),字節(jié)流顧名思義字節(jié)流就是將文件的內(nèi)容讀取到字節(jié)數(shù)組,對初學者很有用,有需要的朋友可以了解一下。
    2016-10-10

最新評論