我得到了一个错误--“ 请指示一个有效的Swagger或OpenAPI版本字段。支持的版本字段是swagger:"2.0”和那些匹配openapi: 3.0.n的字段(例如openapi: 3.0.0)。当我将生成的json从/api-docs粘贴到editor.swagger.io时, “。我有一些观察。
中提到的错误json给出了
"{\"openapi\":\"3.0.1\", "\info\":{ ----------------
{"openapi":"3.0.1", "info":{ ----------------
)时,错误消失了,即UI没有出现任何问题。
我的项目springboot版本是2.2.13 version,springdoc ui版本是1.5.8,jackson-databind版本是2.10.5.1
@Configuration
public class Config1 {
@Bean
public GroupedOpenApi publicApi() {
return GroupedOpenApi.builder()
.group("user")
.pathsToMatch("/v1/**")
.build();
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.info(new Info().title("title1").description("test").version("1.0.0"));
}
如果我需要更多的信息,请告诉我。关于这一问题的任何投入都将是有益的。谢谢。
发布于 2022-03-08 23:32:22
我对springdoc 2.6.4,springdoc 1.6.6也有同样的问题。问题是本地主机:8080/v3/api-docs/ responses "{"openapi":"3.0.1",“\info”:{.它是一个字符串,而不是预期的有效JSON。
在我的
WebMvcConfig implements WebMvcConfigurer
中,它没有
StringHttpMessageConverter
,所以解决方案是将它添加到转换器中:
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(stringHttpMessageConverter());
@Bean
public StringHttpMessageConverter stringHttpMessageConverter() {
StringHttpMessageConverter messageConverter = new StringHttpMessageConverter();
messageConverter.setSupportedMediaTypes(List.of(MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN, MediaType.ALL));