• 兼容SringBoot 3.X版本的 API工具(Springdoc)


           前言 

            逆水行舟,不进则退!!!   

            Springfox 目前最新的还是3.0的版本, 只支持SpringBoot 2.X的版本, 

            SpringDoc 目前最新的版本支持 SpringBoot3.X + JDK17   


           pom依赖      

            最简单的使用方式就是引入依赖, 然后在控制器上加上对应的注解, 就可以了

    1. org.springdoc
    2. springdoc-openapi-starter-webmvc-ui
    3. 2.1.0
    4. org.springdoc
    5. springdoc-openapi-starter-webmvc-api
    6. 2.1.0

             控制器上的注解

    1. @RestController
    2. @Tag(name = "hello")
    3. @RequestMapping("/test")
    4. public class TestController {
    5. @PostMapping("/helloByName")
    6. @Operation(summary = "概要", description = "通过name来获取信息")
    7. public String helloByName(String name) {
    8. return "hello : " + name;
    9. }

            检验测试

            http://127.0.0.1:port/swagger-ui/index.html#/控制器路径

            

            Springfox 到 Springdoc注解的迁移

    1. @Api ---> @Tag,用于标记一组相关的操作。
    2. @ApiIgnore ---> @Parameter(hidden = true)@Operation(hidden = true)@Hidden 替代
    3. @ApiImplicitParam ---> @Parameter,用于描述方法的输入参数。
    4. @ApiImplicitParams ---> @Parameters,用于将多个参数组合在一起。
    5. @ApiModel ---> @Schema,用于描述模型类。
    6. @ApiModelProperty(hidden = true) ---> @Schema(accessMode = READ_ONLY),用于标记模型属性为只读。
    7. @ApiModelProperty ---> @Schema,用于描述模型属性。
    8. @ApiOperation(value = "foo", notes = "bar") ---> @Operation(summary = "foo", description = "bar"),用于描述 API 操作。
    9. @ApiParam ---> @Parameter,用于描述方法的参数。
    10. @ApiResponse(code = 404, message = "foo") ---> @ApiResponse(responseCode = "404",
    11. description = "foo"),用于描述 API 响应。

           更细化的配置

            在配置层 添加配置类 OpenApiConfig

            

    1. package com.yu.forum.config;
    2. import io.swagger.v3.oas.models.Components;
    3. import io.swagger.v3.oas.models.ExternalDocumentation;
    4. import io.swagger.v3.oas.models.OpenAPI;
    5. import io.swagger.v3.oas.models.info.Contact;
    6. import io.swagger.v3.oas.models.info.Info;
    7. import io.swagger.v3.oas.models.info.License;
    8. import io.swagger.v3.oas.models.media.StringSchema;
    9. import io.swagger.v3.oas.models.parameters.Parameter;
    10. import io.swagger.v3.oas.models.security.SecurityRequirement;
    11. import io.swagger.v3.oas.models.security.SecurityScheme;
    12. import org.springdoc.core.configuration.SpringDocConfiguration;
    13. import org.springdoc.core.models.GroupedOpenApi;
    14. import org.springframework.boot.autoconfigure.AutoConfigureBefore;
    15. import org.springframework.context.annotation.Bean;
    16. import org.springframework.context.annotation.Configuration;
    17. import java.util.Collections;
    18. @Configuration
    19. public class OpenApiConfig {
    20. @Bean
    21. public OpenAPI openApi() {
    22. return new OpenAPI()
    23. .info(new Info()
    24. .title("文档标题")
    25. .description("文档描述")
    26. .contact(new Contact().name("作者").email("邮箱").url("可以写你的博客地址或不填"))
    27. .version("v2.0"));
    28. }
    29. }

            配置yml文件

    1. springdoc:
    2. api-docs:
    3. # 是否开启接口文档
    4. enabled: true
    5. swagger-ui:
    6. # 持久化认证数据,如果设置为 true,它会保留授权数据并且不会在浏览器关闭/刷新时丢失
    7. persistAuthorization: true

       未完待更新


           小标题 


           小标题 


            我是专注学习的章鱼哥~

  • 相关阅读:
    JavaScript基础 JavaScript第三天 1. for - 循环 && 2. 数组
    Pytorch 分布式训练中DP和DDP的原理和用法
    数据集笔记:NGSIM (next generation simulation)
    04【HTML常用标签】
    在集成使用华为移动服务的时候会出现 java.security.InvalidParameterException: url is null
    JOSEF约瑟 漏电继电器 JD1-200 工作电压:380V 孔径:45mm 50~500mA
    Linux系统 (三)- 权限介绍
    【云原生之K8s】 K8s管理工具kubectl详解(二)
    rsync 远程同步实现快速、安全、高效的异地备份
    docker-compose
  • 原文地址:https://blog.csdn.net/m0_63852716/article/details/139482680