8

我已经编写了 OpenAPI 3.0 格式的 API 定义(https://swagger.io/docs/specification/basic-structure/)。现在我正在尝试生成 Java Spring 对象,就像我之前使用 Swagger 2.0 定义及其关联的 Maven 插件所做的那样。

到目前为止,我有一个基本的 API 定义,开头是:

openapi: 3.0.0 info: title: Demo API description: This is a basic REST API implementing the [Open API Specification](https://en.wikipedia.org/wiki/OpenAPI_Specification). version: 0.0.1

在我的pom.xml文件中,我添加了:

<dependency>
  <groupId>org.openapitools</groupId>
  <artifactId>openapi-generator-cli</artifactId>
  <version>3.3.3</version>
</dependency>

但是在执行时mvn install,我得到了这个错误:

com.fasterxml.jackson.core.JsonParseException: Unrecognized
     token 'openapi': was expecting ('true', 'false' or 'null')
     at [Source: definition\DEFINITION.yml; line: 1, column: 9]

有谁知道问题出在哪里?

4

5 回答 5

0

我在使用 io.swagger.codegen.v3.swagger-codegen-maven-plugin 和 windows 时遇到了同样的问题(在 MacOS 上运行良好——所以这不可能是语法问题)。

升级到最新的插件版本确实修复了错误(撰写本文时为 3.0.27)。

于 2021-08-23T07:40:18.667 回答
0

I received a similar error using the CLI version of OpenAPI Generator. Based on this issue/comment, I believe any validation issue in a YAML spec will trigger the generator to assume the file is JSON.

At least that is what was happening with my file... sadly, I had to use a different tool to validate the YAML, and then OpenAPI Generator worked.

于 2021-11-10T17:20:25.947 回答
0

我遇到了同样的问题(我需要提一下,这只发生在 Windows 上。相同的代码在 linux 下运行良好)。虽然我没有“解决方案”,但对我有用的解决方法是设置:

validateSpec = false

所以像

generatorName = "typescript-angular"
validateSpec = false
inputSpec = "${myInputSpec}".toString()
outputDir = "${generatedCodeDir}".toString()
于 2021-06-01T14:00:00.147 回答
0

我目前正在研究 openapi-generator-maven-plugin 从 OpenAPI JSON 模式生成 Java 类。

这些错误看起来像语法问题。所以首先确保你的模式在语法上是正确的,看起来像这样:

{
  "openapi": "3.0.0",
  "info": {
    "title": "Demo API",
    "description": "This is a basic REST API implementing the [Open API Specification](https://en.wikipedia.org/wiki/OpenAPI_Specification).",
    "version": "0.0.1"
  },
  # Schema definition goes here
}
于 2018-11-20T15:34:29.950 回答
0

经过大量的尝试和尝试,我发现问题出在我的 Swagger 文件上。这url不是一个正确的 URL。它类似于/api(没有主机域的 url)。

OpenAPI 生成器本可以提供更好的错误消息。无论如何放置一些有效的网址,允许我生成代码。

于 2021-12-11T17:47:45.407 回答