Swagger OpenAPI 3.0-Springdoc-GrouedOpenApi在Spring MVC中不工作 [英] Swagger OpenAPI 3.0 - Springdoc - GroupedOpenApi not working in Spring MVC

查看:61
本文介绍了Swagger OpenAPI 3.0-Springdoc-GrouedOpenApi在Spring MVC中不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序正在启动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

应用于应用程序属性,然后我将获得

我做错了什么?

我是否需要导入任何其他类才能使组功能正常工作?

谢谢

推荐答案

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

如前所述,您只需将您的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 {

}

这篇关于Swagger OpenAPI 3.0-Springdoc-GrouedOpenApi在Spring MVC中不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆