gpt4 book ai didi

java - Swagger OpenAPI 3.0 - Springdoc - GroupedOpenApi 在 Spring MVC 中不起作用

转载 作者:行者123 更新时间:2023-12-04 08:59:37 27 4
gpt4 key购买 nike

我的应用程序是 Sping MVC 无法启动。
我正在使用 springdoc-openapi-ui 1.4.4
此外,我将以下导入添加到我的 @configuration 类之一中;

    org.springdoc.core.SpringDocConfigProperties.class, org.springdoc.core.SpringDocConfiguration.class, 
org.springdoc.webmvc.core.SpringDocWebMvcConfiguration.class,
org.springdoc.webmvc.core.MultipleOpenApiSupportConfiguration.class,
org.springdoc.core.SwaggerUiConfigProperties.class, org.springdoc.core.SwaggerUiOAuthProperties.class,
org.springdoc.webmvc.ui.SwaggerConfig.class, org.springdoc.core.CacheOrGroupedOpenApiCondition.class,
org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration.class })
并实现bean如下
@Bean
public GroupedOpenApi publicApi() {
return GroupedOpenApi.builder()
.group("user")
.pathsToExclude("/api/v2/**", "/v2/**")
.pathsToMatch("/api/v1/**", "/v1/**")
.build();
}
@Bean
public GroupedOpenApi adminApi() {
return GroupedOpenApi.builder()
.group("admin")
.pathsToExclude("/api/v1/**", "/v1/**")
.pathsToMatch("/api/v2/**", "/v2/**")
.build();
}

@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.components(new Components())
.info(new Info()
.title("titleI")
.version("1.0.0"));
}

但是当我尝试时 http://localhost:8080/MyApp/v3/api-docs/user给我 404。
但我得到了 http://localhost:8080/MyApp/v3/api-docs 中列出的所有 API
它也来自 http://www.onlykalu.com:81/MyApp/swagger-ui/index.html?configUrl=/MyApp/v3/api-docs/swagger-config也没有定义下拉。
如果我添加
springdoc.group-configs[0].group=user
springdoc.group-configs[1].group=admin
到 application.properties 然后我得到
enter image description here
我做错了什么?
我是否需要导入任何其他类才能使组功能正常工作?
谢谢

最佳答案

您的问题也已在此处回答:

  • https://github.com/springdoc/springdoc-openapi/issues/841

  • 如前所述,您只需将 Bean 定义放在专用配置类中,并将其添加到 springdoc-openapi Bean 导入中,以便通过相同的机制加载 Bean。
    这是正确的bean配置:
    @Configuration
    public class GroupsConfiguration {

    @Bean
    public GroupedOpenApi publicApi() {
    return GroupedOpenApi.builder().group("user").pathsToExclude("/api/v2/**").pathsToMatch("/api/v1/**").build();
    }

    @Bean
    public GroupedOpenApi adminApi() {
    return GroupedOpenApi.builder().group("admin").pathsToExclude("/api/v1/**").pathsToMatch("/api/v2/**").build();
    }

    @Bean
    public OpenAPI customOpenAPI() {
    return new OpenAPI().components(new Components()).info(new Info().title("Spring MVC REST API")
    .contact(new Contact().name("Rasika Kaluwalgoda")).version("1.0.0"));
    }

    }
    springdoc-openapi 导入 一起使用 GroupsConfiguration :
    @Configuration
    @Import({ org.springdoc.core.SpringDocConfigProperties.class,
    org.springdoc.webmvc.core.MultipleOpenApiSupportConfiguration.class,
    org.springdoc.core.SpringDocConfiguration.class, org.springdoc.webmvc.core.SpringDocWebMvcConfiguration.class,
    SwaggerUiConfigParameters.class, SwaggerUiOAuthProperties.class,
    org.springdoc.core.SwaggerUiConfigProperties.class, org.springdoc.core.SwaggerUiOAuthProperties.class,
    org.springdoc.webmvc.ui.SwaggerConfig.class, GroupsConfiguration.class,
    org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration.class })
    public class SwaggerConfig {

    }

    关于java - Swagger OpenAPI 3.0 - Springdoc - GroupedOpenApi 在 Spring MVC 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63627462/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com