haoxiaolan 2024-04-26 15:29 采纳率: 35.6%
浏览 55

SpringBoot配置OpenAPI3

SpringBoot配置OpenAPI3

# springdoc-openapi项目配置
springdoc:
  swagger-ui:
    path: /swagger-ui.html
    tags-sorter: alpha
    operations-sorter: alpha
  api-docs:
    path: /v3/api-docs
  group-configs:
    - group: 'admin'
      paths-to-match: '/**'
      packages-to-scan: com.api.controller.admin
# knife4j的增强配置,不需要增强可以不配
knife4j:
  enable: true
  setting:
    language: zh_cn

img

为啥配置不起作用?

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-26 15:29
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在尝试在Spring Boot应用中集成SpringDoc OpenAPI和Knife4J,并且遇到了一些问题。根据你提供的信息,这里有几个可能的问题点以及相应的解决建议:

    1. 路径冲突:你配置了两个不同的API文档路径,springdoc:knife4j:。这可能会导致访问文档时出现问题。你需要确保这两个路径是唯一的,例如,将 Knife4J 的路径更改为 /knife4j

    2. 包扫描:检查你的包扫描路径是否正确。如果你的应用有多个模块,确保你包含了正确的包名,以便 SpringDoc 可以发现并处理控制器。

    3. 依赖问题:确认你已经添加了正确的依赖项到你的 pom.xml 或者 build.gradle 文件中。

    对于 Maven 项目,确保你有以下依赖:

    <dependencies>
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-ui</artifactId>
            <version>1.6.8</version>
        </dependency>
        <dependency>
            <groupId>io.github.knightliao</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>4.3.0</version>
        </dependency>
    </dependencies>
    

    对于 Gradle 项目,类似地添加以下依赖:

    dependencies {
        implementation 'org.springdoc:springdoc-openapi-ui:1.6.8'
        implementation 'io.github.knightliao:knife4j-spring-boot-starter:4.3.0'
    }
    
    1. 启动类注解:确保你的主启动类上使用了 @EnableOpenApi 注解,如下所示:
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Bean;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
    
    @SpringBootApplication
    @EnableSwagger2WebMvc // or @EnableOpenApi for Springdoc
    public class Application {
    
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    
        @Bean
        public Docket adminApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.api.controller.admin"))
                    .paths(PathSelectors.any())
                    .build();
        }
    }
    
    1. 清理缓存:有时浏览器缓存可能会导致旧的配置仍然生效。尝试清除浏览器缓存,或者使用隐私浏览模式访问以确保看到最新的更改。

    按照上述步骤进行操作后,你应该能够正常访问 API 文档。如果你仍然遇到问题,请提供更多信息,如错误日志、相关类的代码片段等,这样我可以更好地协助你。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月26日

悬赏问题

  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型