首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >呈现Swagger OpenAPI v3 UI + Springboot项目中的问题

呈现Swagger OpenAPI v3 UI + Springboot项目中的问题
EN

Stack Overflow用户
提问于 2021-08-03 15:41:24
回答 2查看 1.8K关注 0票数 2

我得到了一个错误--“请指示一个有效的Swagger或OpenAPI版本字段。支持的版本字段是swagger:"2.0”和那些匹配openapi: 3.0.n的字段(例如openapi: 3.0.0)。当我将生成的json从/api-docs粘贴到editor.swagger.io时,“。我有一些观察。

  1. localhost:8080/v3/api-docs/产量- editor.swagger.io.

中提到的错误json给出了"{\"openapi\":\"3.0.1\", "\info\":{ ----------------

  1. 在手动删除初始双引号和转义字符(即{"openapi":"3.0.1", "info":{ ---------------- )时,错误消失了,即UI没有出现任何问题。

我的项目springboot版本是2.2.13 version,springdoc ui版本是1.5.8,jackson-databind版本是2.10.5.1

  1. OpenAPI配置类-

代码语言:javascript
运行
复制
@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"));
}

如果我需要更多的信息,请告诉我。关于这一问题的任何投入都将是有益的。谢谢。

EN

回答 2

Stack Overflow用户

发布于 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,所以解决方案是将它添加到转换器中:

代码语言:javascript
运行
复制
  @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));
    return messageConverter;
  }

如果要扩展WebMvcConfigurationSupport而不是实现WebMvcConfigurer,则可能不会得到此错误,因为默认情况下StringHttpMessageConverter是添加的。

票数 2
EN

Stack Overflow用户

发布于 2021-10-11 08:26:06

您可以在您的.version("v0.0.1")publicApi中使用这样的

代码语言:javascript
运行
复制
@Bean
  public OpenAPI springShopOpenAPI() {
      return new OpenAPI()
              .version("v0.0.1"));
  }

有关详细信息,请参阅docs https://springdoc.org/#migrating-from-springfox

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68639063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档