问题标签 [openapi-generator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1081 浏览

swagger - 我可以将环境变量传递给 openapi-generator 吗?

我正在运行openapi-generator generate -i swagger.yml -g html2 -o swagger-out并且在我的swagger.yml文件中我有:

但我想将服务器 URL 和信息版本作为参数变量传递。可能吗?谢谢

0 投票
2 回答
1794 浏览

typescript - 避免将请求对象包装到从 OpenAPI 3.0 规范到 Typescript 的 OpenAPI Generator 中的 InlineObject1

我正在尝试使用读取 OpenAPI 3.0 规范的 OpenAPI Generator 4.0.0-SNAPSHOT(我们的经理要求我们使用该版本)生成 Typescript 客户端。我们当前所有的端点要么接受查询字符串中的数据,要么接受表单主体的数据,并且它们都可以完美地工作。我有一个新端点,它将以 POST 正文中的 JSON 格式读取数据(其他端点最终也会被转换)。它将接受如下对象:

{email: "something@domain.com"}

我正在尝试在 YAML 中记录端点,如下所示:

但是,当我生成 Typescript 客户端时,它会生成一个SendPasswordReminderRequest对象,该对象包装了一个自动生成的InlineObject1对象,该对象包装了我实际email的 .

这使我像这样使用它:

相反,我想要的是完全摆脱它InlineObject1SendPasswordReminderRequest直接包装email属性,并能够将其用作:

我已经尝试在components/requestBodies和 using中定义正文,$ref即使它使用我的请求正文类型的名称,它仍然包装实际正文。

我怎样才能摆脱这种包装?

0 投票
1 回答
2735 浏览

kotlin - Swagger-ui 不显示控制文档

我正在尝试使用 springfox-swagger-ui 来记录我的休息服务。我在 kotlin 项目中使用了下一个基本配置:

这是我的 Docket 课程:

这是我的控制器:

我使用了一个非常基本的配置,即 ApiOperation、Api 和 RequestMapping("/api/infos") 标签,也是在数据类级别,下一个配置:

当我加载http://localhost:8080/swagger-ui.html#/api-controller(招摇浏览器)。我看不到我的控制器结构。似乎有一个预定义的端点,如下所示:

http://localhost:8080/v2/api-docs?group=api-infos

我对这个配置不是很熟悉。对正确配置有什么想法吗?

谢谢

0 投票
0 回答
178 浏览

jsonschema - 是否可以使用 quicktype 生成 Draft4 json 模式?

我正在使用 npm 包quicktype从示例 json 文件生成 json 模式。我稍后会在 openapispec 文件中使用这些模式文件,然后使用openapi 生成器工具生成文档和 SDK。

问题是quicktype默认生成draft6 json模式,而开放的api生成器无法读取/理解高于draft4的任何内容。

我尝试了一些 json 模式生成器,发现 quicktype 非常接近所需的内容,并希望继续使用它。

关于是否可以使用 quicktype 生成 draft4 模式的任何想法?

编辑:添加一个例子。简化的 draft4 模式将是这样的

现在使用 quicktype 生成的 draft6 模式将是这样的

0 投票
0 回答
418 浏览

java - OpenAPI3:如何在查询中传递 json 对象数组

我应该在休息操作中通过学生名单。学生列表定义如下:

其中每个项目定义如下:

根据上述表示,我应该传递 StudentId json 数组(带有 style = form 和 explode = true )。
根据 OpenAPI Generator 生成的代码,需要 Student 列表的操作会遍历列表中的每个 StudentId。对于每个 StudentId,它调用 toString 方法生成 json 表示 StudentId 对象
StudentId 对象有以下 toString 方法:

并且 toIndentedString 方法定义如下:

我的问题是:为什么 OpenAPI 没有生成正确的代码。toString 方法没有生成有效的 json (因为 jSON 以“class StudentId”开头并且它与“\n”杂乱无章}。
这个问题与现有问题不重复在这里,我问的是发送带有样式 = 的 json 对象数组form and explode = false. 现有问题没有为我的问题提供解决方案。

0 投票
1 回答
1999 浏览

node.js - 无法使用 openapi-generator 生成 nodejs-server

如何使用 OAS 2.0 生成 nodejs-server 作为 openapi-generator 的输入?

openapi-generator 在 3.3.4 和 4.0.0 两个版本上运行。我的执行结果如下所示。

■在 3.3.4 中

■在4.0.0

输入 OAS 使用以下内容。

执行环境如下。

・windows10

・java 1.8.0_202

0 投票
5 回答
18838 浏览

java - 使用 java.time.Instant 来表示 DateTime 而不是 OffsetDateTime

我正在使用openApi maven 插件为 REST api 生成 java 请求/响应。

该请求有一个 DateTime 属性,当我运行生成器时,我得到了表示为 java.time.OffsetDateTime 的属性的 DateTime 属性。问题是我需要将属性表示为 java.time.Instant。

这是请求的 openApi 规范:

生成的java请求:

Maven插件设置:

我已经尝试了typeMappingsand importMappings,但它对生成的代码没有影响:

0 投票
1 回答
94 浏览

openapi-generator - 控制 jersey-jaxrs 的 OpenAPI 3.0 包生成

我将openapi-generator用于jersey-jaxrs(OpenAPI 3.0)。我想控制生成我的代码的包。

我正在将api-packagemodel-packagepackage-nameinvoker-package选项全部设置为一个xxx.yyy.zzz值。

我的问题是大部分代码是在 下生成的gen.xxx.yyy.zzz,而在xxx.yyy.zzz. 隐式gen地添加到包名前面。我知道这在很多情况下很方便,但不是我的。是否有任何生成器选项可以避免这种情况?

我已经了解了一些关于 Mustache 模板的知识,它们似乎是一个可能的解决方案,但对于我的要求来说可能有点太多了。

最终,我可以gen手动将代码移动到另一个(非 gen)包中,它可以工作,但这很不方便。

0 投票
0 回答
818 浏览

json - Swaggen 外部参考因未解决的参考而失败

我正在尝试使用 SwagGen 从 OpenAPI 3.0 规范生成客户端代码。示例规范是https://github.com/yonaskolb/SwagGen/blob/master/Specs/Petstore/spec.yml(翻译成 json)并且在调用时工作正常:

swaggen generate spec.json

我想用代表 Pet 的外部模式替换组件/模式部分:

其中 pet.json 位于同一目录中,如下所示:

这给了我一个错误Fatal error: Reference ./pet.json is unresolved: file /private/tmp/swaggen-20190424-43085-jvmk5p/SwagGen-4.1.0/Sources/Swagger/Component/Reference.swift, line 10 Illegal instruction: 4

出于某种原因,当我改用 #ref 时:

一代成功。但是,生成的 Pet 模型是空的:

我试图理解为什么 $ref 会导致未解决的问题,为什么 #ref 会起作用,但会导致 Pet 模型不正确。

0 投票
1 回答
1676 浏览

openapi - When using openapi-generator can you customize method name generation for C# client

Using openapi-generator to generate a C# API client using an openapi v3.0 specification. Is there a way to customize the methodNames of the API? I'd prefer to be able to specify them maybe by using operationId field?

Right now they are incorporating the path variables along with the HTTP VERB and the static path components. It'll work, but I'd like the names to be a bit different.

The other option is to just add new methods since the class is defined as partial?