我得到了一个错误--“ 请指示一个有效的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\":{ ----------------
{"openapi":"3.0.1", "info":{ ----------------
我的项目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 ,所以解决方案是将它添加到转换器中:
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));