国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Boot 3項目集成Swagger3教程

這篇具有很好參考價值的文章主要介紹了Spring Boot 3項目集成Swagger3教程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Spring Boot 3項目集成Swagger3教程

?? 前言

歡迎來到我的小天地,這里是我記錄技術(shù)點滴、分享學(xué)習(xí)心得的地方。??

??? 技能清單
  • 編程語言:Java、C、C++、Python、Go、
  • 前端技術(shù):Jquery、Vue.js、React、uni-app、Echarts
  • UI設(shè)計: Element-ui、Antd、Color-ui
  • 后端技術(shù):Spring Boot、Mybatis-plus、Swagger
  • 移動開發(fā):Android
  • 操作系統(tǒng):Windows、Linux
  • 開發(fā)框架:RuoYi、微信小程序
  • 開發(fā)工具:VSCode、IDEA、Eclipse、WebStorm、HbuildX、Navicat、Xshell、Android Studio、Postman
  • 數(shù)據(jù)庫技術(shù):MySQL、Redis、SQL Server
  • 版本控制:Git

Swagger是一個用于設(shè)計、構(gòu)建、記錄和使用RESTful web服務(wù)的開源軟件框架。Swagger 3(OpenAPI 3.0)提供了更加強大和靈活的API文檔生成能力。本教程將指導(dǎo)您如何在Spring Boot 3項目中集成Swagger3,并使用Knife4j作為UI界面。

1. 添加依賴

首先,您需要在項目的pom.xml文件中添加Swagger3的依賴。同時,為了確保依賴能夠正確下載,您可以添加阿里云的Maven鏡像倉庫。

        <!--swagger3-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
            <version>4.1.0</version>
        </dependency>


    <repositories>
        <!--阿里云鏡像-->
        <repository>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

2. 配置Swagger

在Spring Boot項目中創(chuàng)建一個配置類SwaggerConfig,并添加Swagger的配置信息。

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 io.swagger.v3.oas.models.info.License;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SwaggerConfig {
    @Bean
    public OpenAPI springShopOpenAPI() {
        return new OpenAPI()
                .info(new Info().title("標(biāo)題")
                        .contact(new Contact())
                        .description("我的API文檔")
                        .version("v1")
                        .license(new License().name("Apache 2.0").url("http://springdoc.org")))
                .externalDocs(new ExternalDocumentation()
                        .description("外部文檔")
                        .url("https://springshop.wiki.github.org/docs"));
    }
}


3. 實體類和控制層注解

在您的實體類和控制層中使用Swagger注解來描述API。

// 實體類注解示例
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.Date;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Schema(name = "Employee", description = "$!{table.comment}")
public class Emp {
    @ExcelProperty("ID")
    @Schema(description = "ID")
    private int id;
    @ExcelProperty("用戶名")
    @Schema(description = "用戶名")
    private String names;
    @ExcelProperty("工資")
    @Schema(description = "工資")
    private double salary;
    @ExcelProperty("生日")
    @Schema(description = "生日")
    private Date birthday;
    @ColumnWidth(20)
    @ExcelProperty("頭像")
    @Schema(description = "頭像")
    private String photo;
    
//    @ColumnWidth(20)
//    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    @ExcelProperty("創(chuàng)建日期")
//    private Date u_create_time;
}


// 控制層注解示例
import io.swagger.v3.oas.annotations.Operation;

@Operation(summary = "獲取所有員工信息")
@GetMapping("/selectAll")
public List<Emp> selectAll() {
    // ...
}

4. 通用返回結(jié)果封裝

創(chuàng)建一個通用的返回結(jié)果類,用于統(tǒng)一API的響應(yīng)格式。

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;

@Builder(toBuilder = true)
@AllArgsConstructor
@Setter
@Getter
@Slf4j
public class Result<T> {
    /**
     * 提示信息
     */
    @Schema(description = "提示信息")
    private String message;
    /**
     * 是否成功
     */
    @Schema(description = "是否成功")
    private boolean success;
    /**
     * 返回狀態(tài)碼
     */
    @Schema(description = "返回狀態(tài)碼")
    private Integer code;
    /**
     * 數(shù)據(jù)
     */
    @Schema(description = "數(shù)據(jù)")
    private T data;

    public Result() {
    }

    public static Result success() {
        Result Result = new Result();
        Result.setSuccess(Boolean.TRUE);
        Result.setCode(ResultCode.SUCCESS.getCode());
        Result.setMessage(ResultCode.SUCCESS.getMsg());
        return Result;
    }

    public static Result success(String msg) {
        Result Result = new Result();
        Result.setMessage(msg);
        Result.setSuccess(Boolean.TRUE);
        Result.setCode(ResultCode.SUCCESS.getCode());
        return Result;
    }

    public static Result success(Object data) {
        Result Result = new Result();
        Result.setData(data);
        Result.setSuccess(Boolean.TRUE);
        Result.setCode(ResultCode.SUCCESS.getCode());
        Result.setMessage(ResultCode.SUCCESS.getMsg());
        return Result;
    }

    /**
     * 返回失敗 消息
     *
     * @return Result
     */
    public static Result failure() {
        Result Result = new Result();
        Result.setSuccess(Boolean.FALSE);
        Result.setCode(ResultCode.FAILURE.getCode());
        Result.setMessage(ResultCode.FAILURE.getMsg());
        return Result;
    }

    /**
     * 返回失敗 消息
     *
     * @param msg 失敗信息
     * @return Result
     */
    public static Result failure(String msg) {
        Result Result = new Result();
        Result.setSuccess(Boolean.FALSE);
        Result.setCode(ResultCode.FAILURE.getCode());
        Result.setMessage(msg);
        return Result;
    }

    public static Result failure(Integer code, String msg) {
        Result Result = new Result();
        Result.setSuccess(Boolean.FALSE);
        Result.setCode(code);
        Result.setMessage(msg);
        return Result;
    }


    public static Result failure(String msg, ResultCode exceptionCode) {
        Result Result = new Result();
        Result.setMessage(msg);
        Result.setSuccess(Boolean.FALSE);
        Result.setCode(exceptionCode.getCode());
        Result.setData(exceptionCode.getMsg());
        return Result;
    }

    /**
     * 返回失敗 消息
     *
     * @param exceptionCode 錯誤信息枚舉
     * @return Result
     */
    public static Result failure(ResultCode exceptionCode) {
        Result Result = new Result();
        Result.setSuccess(Boolean.FALSE);
        Result.setCode(exceptionCode.getCode());
        Result.setMessage(exceptionCode.getMsg());
        return Result;
    }

    /**
     * 返回失敗 消息
     *
     * @param exceptionCode 錯誤信息枚舉
     * @param msg           自定義錯誤提示信息
     * @return Result
     */
    public static Result failure(ResultCode exceptionCode, String msg) {
        Result Result = new Result();
        Result.setMessage(msg);
        Result.setSuccess(Boolean.FALSE);
        Result.setCode(exceptionCode.getCode());
        return Result;
    }

}

5. 注解說明

Swagger3的注解與Swagger2有所不同,以下是一些常用注解的對照表:

Swagger2注解 Swagger3注解 注解位置
@Api @Tag(name = “接口類描述”) Controller類上
@ApiOperation @Operation(summary = “接口方法描述”) Controller方法上
@ApiImplicitParams @Parameters Controller方法上
@ApiImplicitParam @Parameter(description = “參數(shù)描述”) Controller方法上
@ApiParam @Parameter(description = “參數(shù)描述”) 方法參數(shù)上
@ApiIgnore @Parameter(hidden = true) 或 @Operation(hidden = true) -
@ApiModel @Schema DTO類上
@ApiModelProperty @Schema DTO屬性上

6. 訪問Swagger UI

啟動您的Spring Boot應(yīng)用后,您可以通過以下地址訪問Swagger UI:

http://localhost:8080/doc.html
http://localhost:8080/swagger-ui/index.html

在這里,您可以查看API文檔,測試API接口,并獲取相關(guān)信息。

?? 獲取源代碼

  • 后端案例:https://gitee.com/bestwishes0203/Front-end-example
  • 前端案例:https://gitee.com/bestwishes0203/Back-end-example

?? 聯(lián)系方式

如果您對我們的項目感興趣,或者有任何技術(shù)問題想要探討,歡迎通過以下方式與我聯(lián)系。我非常期待與您交流,共同學(xué)習(xí),共同進步!

  • 郵箱:2109664977@qq.com
  • Gitee:https://gitee.com/bestwishes0203
  • GitHub:https://github.com/bestwishes0203
  • CSDN:https://blog.csdn.net/interest_ing_/
  • 個人博客:訪問我的博客

?? 結(jié)語

感謝你的訪問,如果你對我的技術(shù)文章或項目感興趣,歡迎通過以上方式與我聯(lián)系。讓我們一起在技術(shù)的道路上不斷前行!??文章來源地址http://www.zghlxwxcb.cn/news/detail-854678.html

到了這里,關(guān)于Spring Boot 3項目集成Swagger3教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • springboot 集成 Swagger3(速通)

    springboot 集成 Swagger3(速通)

    → springboot 集成 Swagger2 ← 這次直接使用 2.5.6 的 spring-boot 。 依賴: 啟動類加注解 @EnableOpenApi 新建測試類 訪問 http://127.0.0.1:8080/swagger-ui.html ,沒錯,又是 Error 頁面 此部分參考:https://blog.csdn.net/mmmm0584/article/details/117786055 在swagger3.0中,swagger-ui.html的位置發(fā)生了變化: ??

    2024年02月03日
    瀏覽(22)
  • SpringBoot學(xué)習(xí)之集成Swagger3(二十七)

    SpringBoot學(xué)習(xí)之集成Swagger3(二十七)

    一、Maven配置 注意swagger的版本號是3.0.0版本以上才可以,這里我們就選擇3.0.0版本 ?完整的Maven配置如下(僅供參考): project xmlns=\\\"http://maven.apache.org/POM/4.0.0\\\" xmlns:xsi=\\\"http://www.w3.org/2001/XMLSchema-instance\\\" xsi:schemaLocation=\\\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\\\"

    2024年02月05日
    瀏覽(25)
  • 【SpringBoot3】Spring Boot 3.0 集成 Redis 緩存

    Redis緩存是一個開源的使用ANSIC語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。它主要用于作為數(shù)據(jù)庫、緩存和消息中間件,以快速讀寫和豐富的數(shù)據(jù)結(jié)構(gòu)支持而著稱。 在應(yīng)用程序和數(shù)據(jù)庫之間,Redis緩存作為一個中間層起著關(guān)鍵

    2024年02月21日
    瀏覽(90)
  • Swagger UI及其集成到Spring Boot應(yīng)用中

    作者:禪與計算機程序設(shè)計藝術(shù) Swagger 是一款開源、功能豐富的 API 概述文檔工具。它能夠幫助我們快速、清晰地定義、結(jié)構(gòu)化和展示我們的 API,同時也支持多種開發(fā)語言,如 Java、JavaScript、Python等。在 Spring Boot 中,使用 Swagger 可以極大方便 API 的測試、調(diào)試以及提供給其他

    2024年02月04日
    瀏覽(24)
  • springBoo3.0集成knife4j4.1.0(swagger3)

    springBoo3.0集成knife4j4.1.0(swagger3)

    溫馨提示: springBoot 版本 3.0+ knife4j 版本 4.1.0 ?添加依賴:knife4j包含了swagger,openapi3中的依賴,所以加這一個就行。 yml文件中配置: 然后,就可以啟動測試輸入地址http://ip:port/doc.html ?注解的基本使用可以看下這里:swagger3注解和swagger2的區(qū)別 ?這里主要提下請求參數(shù)為文件

    2024年02月05日
    瀏覽(23)
  • Spring Boot 3.x- RESTful API集成SpringDoc&Swagger-UI

    Spring Boot 3.x- RESTful API集成SpringDoc&Swagger-UI

    系列文章:Spring Boot 3.x 系列教程 springdoc-openapi 幫助使用Spring Boot項目自動化API文檔的生成。 springdoc-openapi 的工作原理是在運行時檢查應(yīng)用程序,根據(jù)Spring配置、類結(jié)構(gòu)和各種注釋推斷 API 語義。 自動生成 JSON/YAML 和 HTML 格式的 API 文檔。這個文檔可以通過使用 swagger-api 注解來

    2024年01月25日
    瀏覽(21)
  • 【Spring Boot】SpringBoot 2.6.6 集成 SpringDoc 1.6.9 生成swagger接口文檔

    【Spring Boot】SpringBoot 2.6.6 集成 SpringDoc 1.6.9 生成swagger接口文檔

    之前常用的SpringFox在2020年停止更新了,新項目集成SpringFox出來一堆問題,所以打算使用更活躍的SpringDoc,這里簡單介紹一下我這邊SpringBoot2.6.6集成SpringDoc1.6.9的demo。 官網(wǎng)鏈接 maven為例: 代碼如下(示例): 默認路徑: UI界面 http://localhost:9527/swagger-ui/index.html json界面 http:/

    2024年02月09日
    瀏覽(22)
  • Spring Boot 整合 Swagger 教程詳解

    Spring Boot 整合 Swagger 教程詳解

    ?作者簡介:2022年 博客新星 第八 。熱愛國學(xué)的Java后端開發(fā)者,修心和技術(shù)同步精進。 ??個人主頁:Java Fans的博客 ??個人信條:不遷怒,不貳過。小知識,大智慧。 ??當(dāng)前專欄:SpringBoot 框架從入門到精通 ?特色專欄:國學(xué)周更-心性養(yǎng)成之路 ??本文內(nèi)容:Spring Boot 整

    2023年04月14日
    瀏覽(27)
  • Spring Cloud Gateway集成聚合型Spring Boot API發(fā)布組件knife4j,增強Swagger

    Spring Cloud Gateway集成聚合型Spring Boot API發(fā)布組件knife4j,增強Swagger

    大家都知道,在前后端分離開發(fā)的時代,前后端接口對接是一項必不可少的工作。 可是, 作 為后端開發(fā),怎么和前端更好的配合,才能讓自己不心累、腦累 ,直接扔給前端一個后端開放api接口文檔或者頁面,讓前端不用看著難受,也不用前端老問你,來愉快的合作呢? 原

    2024年04月22日
    瀏覽(23)
  • Spring Boot 集成 API 文檔 - Swagger、Knife4J、Smart-Doc

    Spring Boot 集成 API 文檔 - Swagger、Knife4J、Smart-Doc

    Swagger 作為 API 設(shè)計和文檔的強大工具,是一個由專門的工具集合支持的框架,它在整個 API 的生命周期中發(fā)揮作用,從設(shè)計和文檔,到測試和部署。通過提供可視化界面,Swagger 讓開發(fā)人員和最終用戶都能清晰地理解和操作 API。 使用建議:筆者建議優(yōu)先考慮 Knife4J,它已經(jīng)能

    2024年01月22日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包