2

我正在尝试解析一个 OPEN API URL,这是它的以下代码

OpenAPI openAPI = new OpenAPIV3Parser().read("https://petstore3.swagger.io/api/v3/openapi.json");

这给了我以下例外

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactoryBuilder

我正在使用的图书馆是

<dependency>
<groupId>io.swagger.parser.v3</groupId>
<artifactId>swagger-parser-v3</artifactId>
<version>2.0.19</version>

是否有任何其他库可用于解析 OPEN API 3.0?

4

2 回答 2

1

如果您检查 OpenAPI.read() 它接受

  1. (字符串位置)或
  2. (字符串位置、列出身份验证、解析选项解析)

但是您要尝试的是“String URL ”,而不是尝试提供具有以下依赖关系的(String“ filePath ”)。它会像魅力一样起作用。

<dependency>
  <groupId>io.swagger.parser.v3</groupId>
  <artifactId>swagger-parser</artifactId>
  <version>2.0.26</version>
</dependency> 

笔记:

 OpenAPI openAPI = new OpenAPIV3Parser().read(filePath) for OpenAPI3.0
 Swagger swagger = new SwaggerParser().read(filePath)   for Swagger2.0

为了清楚起见,请查看下面的 read() 代码段。

在此处输入图像描述

您可以使用 swagger 编辑器将 json 文件类型切换为 yaml。Swagger 编辑器 >> 编辑 >> 转换为 YAML >> 下载的文件将其移动到filePath

在此处输入图像描述

于 2021-06-17T18:51:04.680 回答
1

使用依赖:

<dependency>
  <groupId>io.swagger.parser.v3</groupId>
  <artifactId>swagger-parser</artifactId>
  <version>2.0.25</version>
</dependency>

这适用于我解析 OpenAPI 和 Swagger 规范

于 2021-05-15T12:43:11.440 回答