本文介紹了Swagger OpenAPI 3.0-Springdoc-GrouedOpenApi在Spring MVC中不工作的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我的應(yīng)用程序正在啟動(dòng)MVC,而不是啟動(dòng)。
我使用的是springdoc-openapi-ui 1.4.4
另外,我將以下導(dǎo)入添加到我的一個(gè)@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 })
并按如下方式實(shí)現(xiàn)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"));
}
但當(dāng)我嘗試http://localhost:8080/MyApp/v3/api-docs/user
時(shí)
給我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
也沒(méi)有定義下拉列表。
如果我添加
springdoc.group-configs[0].group=user
springdoc.group-configs[1].group=admin
應(yīng)用于應(yīng)用程序?qū)傩裕缓笪覍@得
我做錯(cuò)了什么?
我是否需要導(dǎo)入任何其他類才能使組功能正常工作?
謝謝
推薦答案
您的問(wèn)題也已在此處得到回答:
https://github.com/springdoc/springdoc-openapi/issues/841
如前所述,您只需將您的Bean定義放在一個(gè)專用的配置類中,并將其添加到springdoc-Openapi Bean導(dǎo)入中,這樣就可以通過(guò)相同的機(jī)制加載這些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導(dǎo)入一起與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 {
}
這篇關(guān)于Swagger OpenAPI 3.0-Springdoc-GrouedOpenApi在Spring MVC中不工作的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,