【发布时间】:2019-04-21 11:47:57
【问题描述】:
我已经编写了 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]
有谁知道问题出在哪里?
【问题讨论】:
-
这是您的 definition.yml 的实际缩进还是只是复制粘贴格式问题?缩进错误 -
info必须与openapi处于同一级别。将您的 YAML 粘贴到 editor.swagger.io 以确保语法正确。 -
这只是复制粘贴。我的 yaml 文件是正确的,在 Swagger 编辑器中编辑时没有显示错误。但看起来“openapi”标签无法识别。
-
这已经晚了,可能是错误的,但也许你应该使用
openapi-generator-maven-plugin 而不是 CLI jar? -
我在 openapi 规范 3.0.0 和 openapi-generator-maven-plugin 5.10 版中遇到了同样的异常。将 openapi-generator-maven-plugin 升级到 5.2.1 版解决了这个问题。