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

Spring Boot 3.x 引入springdoc-openapi (內(nèi)置Swagger UI、webmvc-api)

這篇具有很好參考價值的文章主要介紹了Spring Boot 3.x 引入springdoc-openapi (內(nèi)置Swagger UI、webmvc-api)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

接觸的原因
因開發(fā)自己的項目時,寫接口文檔很繁瑣,查到后端都在用swagger等接口工具來記錄接口文檔,于是學(xué)習(xí)了一下,本文記錄個人配置過程,有問題歡迎指正交流??

Swagger: Swagger是一種Rest API的表示方式,它是標準的、語言無關(guān)的工具,這種表示方式不僅人可讀,而且機器也可讀。Swagger提供了一套完整的規(guī)范來描述API接口,包括請求和響應(yīng)的數(shù)據(jù)模型、操作行為等。它通過注解或配置文件的方式與代碼集成,以生成API文檔。

SpringDoc: SpringDoc是基于OpenAPI 3規(guī)范的,專為Spring Boot設(shè)計的API文檔生成工具。它提供了與Spring Boot更好的集成,支持Spring Boot全系列。SpringDoc利用JSR-303中的注解(如@NotNull、@Min、@Max、@Size等)來描述API的參數(shù)驗證信息。此外,SpringDoc的接口信息可以通過JSON展示,也可以與Swagger-ui集成,提供可視化的API文檔界面。

在網(wǎng)上看了許多教程,發(fā)現(xiàn)很多都是針對Spring Boot 2 框架的,即使有針對Spring Boot 3 的,用法也不太一樣,經(jīng)過對比測試,最后我使用的是 SpringDoc OpenAPI Starter WebMvc UI

它是 Spring Boot 項目中用于自動生成 API 文檔的一個依賴庫。它結(jié)合了 Swagger UI,提供了一個可視化的界面來展示和測試你的 RESTful APIs。這個依賴庫特別適用于使用 Spring Web MVC 框架構(gòu)建的項目。

這個依賴項包括了 Swagger UI 和 SpringDoc OpenAPI Starter WebMvc API,無需額外引入其他依賴即可使用。

pom.xml 配置

我的 spring boot 版本是 3.1.8
引入 springdoc 依賴(記得點擊右上角的帶藍色的M按鈕進行依賴下載)

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.8</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencies>
    <!-- 其他依賴 -->

    <!-- 加入 springdoc 依賴 -->
    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
        <version>2.5.0</version>
    </dependency>

</dependencies>

可以在pom.xml 文件引入阿里云鏡像 (與 dependencies 同級?。。?/strong>

<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>

application.yml 配置

server:
  port: 5000

springdoc:
  api-docs:
    enabled: true # 開啟OpenApi接口
    path: /v3/api-docs  # 自定義路徑,默認為 "/v3/api-docs"
  swagger-ui:
    enabled: true # 開啟swagger界面,依賴OpenApi,需要OpenApi同時開啟
    path: /swagger-ui/index.html # 自定義路徑,默認為"/swagger-ui/index.html"

如果需要更改這里的路徑,切記在攔截器配置那里對應(yīng)更改,后面會貼配置,但是只針對我上面這個路徑,根據(jù)自己的需求改一下。

SwaggerConfig.java 配置

// 你自己的包名
package com.xxx.xxx.config;

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;

/**
 * @Author HHHY
 * @ClassName
 * @Date: 2024/4/2 14:21
 * @Description: Swagger 配置
 */

@Configuration
public class SwaggerConfig {
    @Bean
    public OpenAPI springShopOpenAPI() {
        return new OpenAPI()
                .info(new Info().title("Spring Boot 中使用 Swagger UI 構(gòu)建 RESTful API")
                        .contact(new Contact())
                        .description("百草中醫(yī)藥信息管理平臺提供的 RESTful API")
                        .version("v1.0.0")
                        .license(new License().name("Apache 2.0").url("http://springdoc.org")))
                        .externalDocs(new ExternalDocumentation()
                        .description("外部文檔")
                        .url("https://springshop.wiki.github.org/docs"));
    }
}

若你沒有設(shè)置攔截器,那么到這里直接訪問 http://localhost:5000/swagger-ui/swagger-ui/index.html#/ 應(yīng)該就可以跑起來了,其中 localhost:端口號 是你自己在 application 里設(shè)置的。

但是 ???!

當我滿心歡喜的準備迎接屬于自己的接口文檔時,
springdoc-openapi-starter-webmvc-ui,開發(fā)工具,spring boot,后端,java
springdoc-openapi-starter-webmvc-ui,開發(fā)工具,spring boot,后端,java 蒙住了,已經(jīng)搞了幾個小時了…于是我遍覽各位大佬的帖子,終于讓我找到了蛛絲馬跡,感謝這位大佬這篇文章的最后那段話給我的啟發(fā),指路——Spring Boot引入swagger-ui 后swagger-ui.html無法訪問404于是我想起來自己昨天弄了一個攔截器,長這樣:

package com.ykl.springboot_tcmi.config;

import com.ykl.springboot_tcmi.interceptors.LoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Author HHHY
 * @ClassName
 * @Date: 2024/4/1 23:16
 * @Description: 配置類 注冊攔截器
 */

@Configuration
public class WebConfig implements WebMvcConfigurer {
    // 注入攔截器對象
    @Autowired
    private LoginInterceptor loginInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    // 部分接口不攔截
    registry.addInterceptor(loginInterceptor)
    .excludePathPatterns("/api/users/login", "/api/users/register", "/api/rights?flag=front");
    }
}

若你發(fā)現(xiàn)和我一樣都不能訪問 json 與 ui 界面,那么在上述配置都正確的情況下,可能是你的攔截器出了問題,我是這么配置的:

// 前面都不變

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    // 部分接口不攔截
    registry.addInterceptor(loginInterceptor)
    .excludePathPatterns("/api/users/login", "/api/users/register", "/api/rights?flag=front")
    // 【看這里?。。 扛鶕?jù)你自己的路徑加上這個配置
    .excludePathPatterns("/swagger-ui/**", "/v3/api-docs/**");
    }

配置完攔截器的東西,應(yīng)該就可以正常訪問了!
我看到說還要配置什么靜態(tài)資源訪問,目前還沒寫到這方面內(nèi)容,我也不太懂,既然能跑起來,就沒加上,能跑就行,能跑就行…
前端同學(xué)開心的去寫接口了(bushi??) springdoc-openapi-starter-webmvc-ui,開發(fā)工具,spring boot,后端,java

注意

我一開始寫的路徑是這樣的 "/swagger-ui/index.html", "/v3/api-docs" ,然后發(fā)現(xiàn)可以訪問到 json的數(shù)據(jù),但是無法訪問 ui 界面,又是百思不得其解,然后雖然很蠢但是真沒想到是不能加上具體的index.html,但是在看別人代碼的時候靈光一閃,試著改成了"/swagger-ui/**",結(jié)果能成了,但是…
springdoc-openapi-starter-webmvc-ui,開發(fā)工具,spring boot,后端,java

是的我又傻眼了 ,因為網(wǎng)上版本真的很多…試了很多都不行…好不容易到這了…,也不差這會兒,容我再琢磨一波…作為一個未來合格的前端從業(yè)者(手動滑稽),我熟練的打開了 F12
springdoc-openapi-starter-webmvc-ui,開發(fā)工具,spring boot,后端,java
果然,被我找到了吧哈哈哈哈
這里不僅只有"/v3/api-docs"發(fā)送的請求,所以"/v3/api-docs/**" 搞定?。?br>springdoc-openapi-starter-webmvc-ui,開發(fā)工具,spring boot,后端,java
具體使用這里就不說了,因為我也是才接觸,僅僅了解就不班門弄斧了,感興趣的同學(xué)可以去看看springdoc-openapi官網(wǎng)或者大佬們的文章或視頻學(xué)習(xí)一下??文章來源地址http://www.zghlxwxcb.cn/news/detail-859967.html

到了這里,關(guān)于Spring Boot 3.x 引入springdoc-openapi (內(nèi)置Swagger UI、webmvc-api)的文章就介紹完了。如果您還想了解更多內(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)文章

  • 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)
  • Springboot 2.7 集成 Swagger 增強版接口框架 Knife4j 4.3 + springdoc OpenApi 3.0

    Springboot 2.7 集成 Swagger 增強版接口框架 Knife4j 4.3 + springdoc OpenApi 3.0

    Swagger 作為一款服務(wù)端接口文檔自動生成框架,早已深入人心,并且在市場上得到了廣泛的應(yīng)用。然而,Swagger 3.0 也就是 OpenApi 3.0 規(guī)范發(fā)布之后便停止了更新維護,出道就是巔峰。Knife4j 作為 Swagger 的增強版,是對 Swagger UI 做了優(yōu)化,同時還有很多增強的功能。伴隨著 Swagge

    2024年02月08日
    瀏覽(33)
  • Spring Doc OpenAPI3.0 拋棄SpringFox擁抱SpringDoc

    Spring Doc OpenAPI3.0 拋棄SpringFox擁抱SpringDoc

    SpringDoc是SpringBoot 的API文檔工具。官網(wǎng):https://springdoc.org/ 在使用SpringBoot 2.6以前去創(chuàng)建API文檔工具一般會采用 SpringFox 提供的Swagger庫,但是由于SpringBoot版本的不斷升級和SpringFox擺爛不更新,導(dǎo)致了SpringBoot2.6之后的項目無法使用SpringFox去生成API文檔,或者可以使用但是有很多

    2024年02月04日
    瀏覽(19)
  • 【Openapi-ui+Knife】springdoc-openapi-ui 整合 knife,多模塊分組,腳手架

    【Openapi-ui+Knife】springdoc-openapi-ui 整合 knife,多模塊分組,腳手架

    ?pom文件: yum文件: swagger配置文件 訪問swagger-ui: 訪問doc.html:?http://localhost:18080/doc.html

    2024年02月04日
    瀏覽(40)
  • springdoc-openapi-ui 整合 knife,多模塊分組,腳手架

    springdoc-openapi-ui 整合 knife,多模塊分組,腳手架

    ?pom文件: yum文件: swagger配置文件 訪問swagger-ui: 訪問doc.html:?http://localhost:18080/doc.html

    2024年02月09日
    瀏覽(15)
  • Spring Boot3.x 使用SpringDoc生成接口文檔-超級完善 + knife4jUI

    Spring Boot3.x 使用SpringDoc生成接口文檔-超級完善 + knife4jUI

    在Springfox3.0停更的兩年里,SpringBoot進入3.0時代, SpringFox出現(xiàn)越來越多的問題,最為明顯的就是解析器的問題,已經(jīng)在上文 中解釋清楚,這里就不再贅述。 SpringDoc是Spring官方推薦的API,相信不會輕易停更。 SpringDoc有多個版本,如果你使用的是SpringBoot3.x,請確保SpringDoc的版本

    2024年02月04日
    瀏覽(16)
  • Spring Boot 中如何使用 Swagger

    Spring Boot 中如何使用 Swagger

    在開發(fā) Web 應(yīng)用時,API 文檔的編寫和維護是一項非常重要的工作。Swagger 是一款非常流行的 API 文檔工具,可以自動生成 API 文檔,并提供一系列的交互式工具,如測試界面、調(diào)試界面等,方便開發(fā)者進行 API 的調(diào)試和測試。本文將介紹如何在 Spring Boot 應(yīng)用中使用 Swagger。 首先

    2024年02月11日
    瀏覽(27)
  • spring boot 集成 swagger3

    spring boot 集成 swagger3

    ? ????????Swagger 3是一種開源的API描述工具,它可以幫助開發(fā)人員設(shè)計、構(gòu)建、文檔化和測試API。Swagger 3支持多種編程語言和框架,包括Java、Node.js、Python、Ruby等,并提供了許多集成工具和插件,例如Postman、Apigee等。 Swagger 3使用OpenAPI規(guī)范來描述API,這是一種通用的API描述

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

    Spring Boot 整合 Swagger 教程詳解

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

    2023年04月14日
    瀏覽(26)
  • Spring Boot整合Spring Fox生成Swagger文檔

    Spring Boot整合Spring Fox生成Swagger文檔

    Springfox是一個用于在Spring應(yīng)用程序中生成Swagger文檔的開源庫。它提供了一組注解和工具,可以將你的API代碼和文檔整合在一起,方便生成和展示API的Swagger文檔。 使用Springfox,你可以在Spring Boot項目中集成Swagger,并通過Swagger UI查看和測試API。它提供了一些注解,如 @Api 、 @

    2024年02月08日
    瀏覽(17)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包