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

springboot 集成 Swagger3(速通)

這篇具有很好參考價(jià)值的文章主要介紹了springboot 集成 Swagger3(速通)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

→ springboot 集成 Swagger2 ←

1. 案例

這次直接使用 2.5.6 的 spring-boot 。

  1. 依賴:

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.5.6</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!--swagger3-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-boot-starter</artifactId>
                <version>3.0.0</version>
            </dependency>
            
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
        </dependencies>
    
  2. 啟動(dòng)類加注解 @EnableOpenApi

  3. 新建測(cè)試類

    @RestController
    @RequestMapping("/test")
    public class SwaggerController {
        @GetMapping("/get")
        public String getStr(String str) {
            return "SELECT " + str;
        }
    
        @PostMapping("/post")
        public String postStr(String str) {
            return "CREATE " + str;
        }
    
        @PutMapping("/put")
        public String putStr(String str) {
            return "UPDATE " + str;
        }
    
        @NoSwagger
        @PatchMapping("/patch")
        public String patchStr(String str) {
            return "UPDATE " + str;
        }
    
        @DeleteMapping("/delete")
        public String deleteStr(String str) {
            return "DELETE " + str;
        }
    }
    
  4. 訪問 http://127.0.0.1:8080/swagger-ui.html ,沒錯(cuò),又是 Error 頁面
    springboot swagger3,Spring Boot,spring boot,swagger

此部分參考:https://blog.csdn.net/mmmm0584/article/details/117786055


在swagger3.0中,swagger-ui.html的位置發(fā)生了變化:
springboot swagger3,Spring Boot,spring boot,swagger????springboot swagger3,Spring Boot,spring boot,swagger
所以路徑也變了:http://127.0.0.1:8080/swagger-ui.htmlhttp://127.0.0.1:8080/swagger-ui/index.html

  1. 訪問 http://127.0.0.1:8080/swagger-ui/index.html
    springboot swagger3,Spring Boot,spring boot,swagger

2. info 配置

新建一個(gè)配置類:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.VendorExtension;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

import java.util.HashSet;

@Configuration
public class Swagger3Conf {
    @Bean
    public Docket createDocket() {
        return new Docket(DocumentationType.OAS_30)// 指定 Swagger3 版本號(hào)
                .apiInfo(createApiInfo());
    }

    @Bean
    public ApiInfo createApiInfo() {
//        // 寫法一
//        return new ApiInfoBuilder()
//                .title("Swagger3 文檔案例")
//                .description("Swagger :一套圍繞 Open API 規(guī)范構(gòu)建的一款 RESTful 接口的文檔在線自動(dòng)生成和功能測(cè)試 API 。")
//                .version("1.0.1")
//                .contact(
//                        // name url email
//                        new Contact("364.99°的文檔", // 文檔發(fā)布者名稱
//                                "https://blog.csdn.net/m0_54355172", // 文檔發(fā)布者的網(wǎng)站地址
//                                "2190826197@qq.com" // 文檔發(fā)布者的郵箱
//                        )
//                )
//                .build();
        // 寫法二
        return new ApiInfo(
                "Swagger3 文檔案例",
                "Swagger :一套圍繞 Open API 規(guī)范構(gòu)建的一款 RESTful 接口的文檔在線自動(dòng)生成和功能測(cè)試 API 。",
                "1.0.1",
                "https://blog.csdn.net/m0_54355172",
                new Contact("364.99°的文檔", // 文檔發(fā)布者名稱
                                "https://blog.csdn.net/m0_54355172", // 文檔發(fā)布者的網(wǎng)站地址
                                "2190826197@qq.com" // 文檔發(fā)布者的郵箱
                        ),
                "364.99°",
                "https://blog.csdn.net/m0_54355172",
                new HashSet<>());
        }
}

springboot swagger3,Spring Boot,spring boot,swagger

  • Docket Swagger 的實(shí)例,可通過 Docket 對(duì)象來配置 Swagger;
  • ApiInfo 文件描述的配置對(duì)象。

3. Docket 配置

1. 開關(guān)配置

    @Bean
    public Docket createDocket() {
        return new Docket(DocumentationType.OAS_30)// 指定 Swagger3 版本號(hào)
                .enable(false)// 關(guān)閉文檔
                .apiInfo(createApiInfo());
    }

springboot swagger3,Spring Boot,spring boot,swagger

注意: 一般只有在測(cè)試環(huán)境才會(huì)用到 Swagger,在生產(chǎn)環(huán)境中會(huì)把它關(guān)閉掉,為了安全與效率。

2. 掃描路徑

                .select()
                .apis(RequestHandlerSelectors.basePackage("com.chenjy.swagger2.controller"))
                .build()

springboot swagger3,Spring Boot,spring boot,swagger

3. 路徑匹配

新建一個(gè)控制器:

@Api(tags = "other 接口 API")
@RestController
@RequestMapping("/other")
public class OtherController {
    @GetMapping("getInfo")
    public String getInfo() {
        return "information";
    }
}
                .select()
                .paths(PathSelectors.ant("/other/**"))
                .build()

springboot swagger3,Spring Boot,spring boot,swagger

4. 分組管理

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

import java.util.HashSet;

@Configuration
public class Swagger3Conf {
    @Bean
    public Docket createDocket01() {
        return new Docket(DocumentationType.OAS_30)// 指定 Swagger3 版本號(hào)
                .groupName("other 組")
                .enable(true)// 關(guān)閉文檔
                .select()
                .paths(PathSelectors.ant("/other/**"))
                .build()
                .apiInfo(createApiInfo());
    }

	@Bean
    public Docket createDocket02() {
        return new Docket(DocumentationType.OAS_30)
                .groupName("test 組")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.chenjy.swagger2.controller"))
                .build()
                .apiInfo(
                        new ApiInfoBuilder()
                                .title("Swagger3 文檔案例")
                                .build()
                );
    }

    @Bean
    public ApiInfo createApiInfo() {
//        // 寫法一
//        return new ApiInfoBuilder()
//                .title("Swagger3 文檔案例")
//                .description("Swagger :一套圍繞 Open API 規(guī)范構(gòu)建的一款 RESTful 接口的文檔在線自動(dòng)生成和功能測(cè)試 API 。")
//                .version("1.0.1")
//                .contact(
//                        // name url email
//                        new Contact("364.99°的文檔", // 文檔發(fā)布者名稱
//                                "https://blog.csdn.net/m0_54355172", // 文檔發(fā)布者的網(wǎng)站地址
//                                "2190826197@qq.com" // 文檔發(fā)布者的郵箱
//                        )
//                )
//                .build();
        // 寫法二
        return new ApiInfo(
                "Swagger3 文檔案例",
                "Swagger :一套圍繞 Open API 規(guī)范構(gòu)建的一款 RESTful 接口的文檔在線自動(dòng)生成和功能測(cè)試 API 。",
                "1.0.1",
                "https://blog.csdn.net/m0_54355172",
                new Contact("364.99°的文檔", // 文檔發(fā)布者名稱
                                "https://blog.csdn.net/m0_54355172", // 文檔發(fā)布者的網(wǎng)站地址
                                "2190826197@qq.com" // 文檔發(fā)布者的郵箱
                        ),
                "364.99°",
                "https://blog.csdn.net/m0_54355172",
                new HashSet<>());
        }
}

springboot swagger3,Spring Boot,spring boot,swagger

4. 常用注解

1. 說明

和 Swagger2 一樣,其常用注解還是如下幾個(gè):文章來源地址http://www.zghlxwxcb.cn/news/detail-770160.html

常用注解 注解說明 常用屬性 屬性說明
@Api 類注解,常用來給文檔中的控制器取別名 tags 別名
@ApiOperation 方法/類注解,常用來描述方法 value
notes
方法說明
方法備注
@ApiParam 參數(shù)/方法/屬性注解,常用來描述參數(shù) name
value
required
參數(shù)名
補(bǔ)充描述
是否必須
@ApiIgnore 方法/屬性注解,使被標(biāo)注方法不生成文檔 - -
@ApiImplicitParam 方法注解,描述一個(gè)參數(shù) name
value
name
required
paramType
dataType
defaultValue
參數(shù)名
補(bǔ)充說明

是否必傳
參數(shù)位置(header、query、path)
參數(shù)類型(默認(rèn) String)
默認(rèn)值
@ApiImplicitParams 搭配 @ApiImplicitParam 一起使用,描述一組參數(shù) springboot swagger3,Spring Boot,spring boot,swagger
@ApiResponse 方法注解,表達(dá)一個(gè)錯(cuò)誤的響應(yīng)信息 code
message
response
整型
字符串
異常信息(默認(rèn) String 類型)
@ApiResponses 搭配 @ApiResponse 一起使用,參考 @ApiImplicitParams
@ApiModel 類注解,當(dāng)此實(shí)體類被作為返回類型用于 API 幫助文檔中的接口方法中,此注解被解析 value
description
實(shí)體類名
補(bǔ)充描述
@ApiModelProperty 屬性注解,搭配 @ApiModel 使用 value
example
hidden
屬性名
示例
是否隱藏

2. 案例

import com.chenjy.swagger2.dto.TestDto;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;

@Api(tags = {"test 接口 API"})
@RestController
public class SwaggerController {

    @ApiResponses({
            @ApiResponse(code = 1, message = "查詢成功"),
            @ApiResponse(code = -1, message = "查詢失敗")
    })
    @ApiImplicitParams({
            @ApiImplicitParam(name = "name", value = "角色名", required = false, defaultValue = "張三"),
            @ApiImplicitParam(name = "num", value = "序列號(hào)", required = true)
    }
    )
    @PostMapping("/getInfo")
    public TestDto getInfo(String name, Integer num) {
        return new TestDto(name, num);
    }
    
    @ApiIgnore
    @GetMapping("/getStr")
    public String getStr(String name) {
        return name;
    }
}
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel( value = "角色實(shí)體類", description = "存儲(chǔ)數(shù)據(jù)并返回")
public class TestDto {
    @ApiModelProperty( value = "姓名", example = "張三", hidden = false)
    private String name;
    @ApiModelProperty( value = "序列號(hào)", example = "1")
    private Integer num;
}
springboot swagger3,Spring Boot,spring boot,swaggerspringboot swagger3,Spring Boot,spring boot,swaggerspringboot swagger3,Spring Boot,spring boot,swagger

到了這里,關(guān)于springboot 集成 Swagger3(速通)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【Springboot系列】Springboot整合Swagger3不簡(jiǎn)單

    ???Swagger是一個(gè)根據(jù)代碼注解生成接口文檔的工具,減少和前端之間的溝通,前端同學(xué)看著文檔就可以開發(fā)了,提升了效率,之前很少寫swagger,這次自己動(dòng)手寫,還是有點(diǎn)麻煩,不怎么懂,記錄下,避免下次繼續(xù)踩坑 ? ? ? ? 新建一個(gè)springboo項(xiàng)目,一路next就好,這里使用的

    2024年02月05日
    瀏覽(29)
  • SpringBoot——2.7.3版本整合Swagger3

    SpringBoot——2.7.3版本整合Swagger3

    Swagger2(基于openApi3)已經(jīng)在17年停止維護(hù)了,取而代之的是 sagger3(基于openApi3),而國內(nèi)幾乎沒有 sagger3使用的文檔,百度搜出來的大部分都是swagger2的使用,這篇文章將介紹如何在 java 中使用 openApi3(swagger3)。 Open API OpenApi是業(yè)界真正的 api 文檔標(biāo)準(zhǔn),其是由 Swagger 來維護(hù)

    2024年02月11日
    瀏覽(25)
  • swagger3 快速整合 springboot 2.6.15

    2024年02月11日
    瀏覽(24)
  • springboot配置swagger3-springfox實(shí)現(xiàn)

    springfox 之前配置需要聲明多個(gè)依賴,到了 3 直接聲明一個(gè) starter 就行了. springboot 版本 2.7.7 springfox-boot-starter 版本 3.0.0 聲明依賴 聲明yml配置 bean配置

    2024年02月12日
    瀏覽(20)
  • SpringBoot3整合OpenAPI3(Swagger3)

    SpringBoot3整合OpenAPI3(Swagger3)

    swagger2 更新到3后,再使用方法上發(fā)生了很大的變化,名稱也變?yōu)?OpenAPI3 。 官方文檔 openapi3 使用十分方便,做到這里后,你可以直接通過以下網(wǎng)址訪問 swagger 頁面。 1. @OpenAPIDefinition + @Info 用于定義整個(gè) API 的信息,通常放在主應(yīng)用類上??梢园?API 的標(biāo)題、描述、版本等信

    2024年01月22日
    瀏覽(21)
  • springBoo3.0集成knife4j4.1.0(swagger3)

    springBoo3.0集成knife4j4.1.0(swagger3)

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

    2024年02月05日
    瀏覽(23)
  • Spring Boot3整合knife4j(swagger3)

    Spring Boot3整合knife4j(swagger3)

    目錄 1.前置條件 2.導(dǎo)依賴 3.配置 已經(jīng)初始化好一個(gè)spring boot項(xiàng)目且版本為3X,項(xiàng)目可正常啟動(dòng)。 作者版本為3.2.2 初始化教程: 新版idea創(chuàng)建spring boot項(xiàng)目-CSDN博客 https://blog.csdn.net/qq_62262918/article/details/135785412?spm=1001.2014.3001.5501 knife4j官網(wǎng): Knife4j · 集Swagger2及OpenAPI3為一體的增強(qiáng)

    2024年01月23日
    瀏覽(30)
  • springboot2.7以上版本配置swagger3.0.0版本瀏覽器無法打開swagger-ui

    1.最實(shí)用解決方式:將pom里的swagger依賴降到2.9.0即可 過低無法啟動(dòng)項(xiàng)目 1.2 Springboot2.6以后將SpringMVC 默認(rèn)路徑匹配策略從AntPathMatcher 更改為PathPatternParser Springfox 使用的路徑匹配是基于AntPathMatcher的,而Spring Boot 2.6.X使用的是PathPatternMatcher 2.3.0.0版本swagger2訪問地址為:http://loca

    2024年02月11日
    瀏覽(21)
  • Swagger3學(xué)習(xí)筆記

    Swagger3學(xué)習(xí)筆記

    參考https://blog.csdn.net/YXXXYX/article/details/124952856 https://blog.csdn.net/m0_53157173/article/details/119454044 不加會(huì)報(bào)錯(cuò) 訪問http://localhost:8080/swagger-ui/index.html Docket 是一個(gè)配置類,用于配置 Swagger 的文檔生成規(guī)則。通過創(chuàng)建一個(gè) Docket 實(shí)例,您可以指定要生成的文檔的詳細(xì)信息,例如 API 的基

    2024年02月13日
    瀏覽(24)
  • swagger3.0配置化

    2024年02月06日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包