Swagger OpenAPI 3.0 - Springdoc - GroupedOpenApi not working in Spring MVC(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
应用于应用程序属性,然后我将获得
我做错了什么?
我是否需要导入任何其他类才能使组功能正常工作?
谢谢
推荐答案
您的问题也已在此处得到回答:
- 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 {
}
这篇关于Swagger OpenAPI 3.0-Springdoc-GrouedOpenApi在Spring MVC中不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Swagger OpenAPI 3.0-Springdoc-GrouedOpenApi在Spring MVC中不工作
- 将 Java Swing 桌面应用程序国际化的最佳实践是什么? 2022-01-01
- 获取数字的最后一位 2022-01-01
- 在 Java 中,如何将 String 转换为 char 或将 char 转换 2022-01-01
- 如何使 JFrame 背景和 JPanel 透明且仅显示图像 2022-01-01
- 转换 ldap 日期 2022-01-01
- 如何指定 CORS 的响应标头? 2022-01-01
- GC_FOR_ALLOC 是否更“严重"?在调查内存使用情况时? 2022-01-01
- Eclipse 的最佳 XML 编辑器 2022-01-01
- java.lang.IllegalStateException:Bean 名称“类别"的 BindingResult 和普通目标对象都不能用作请求属性 2022-01-01
- 未找到/usr/local/lib 中的库 2022-01-01