问题标签 [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 投票
0 回答
46 浏览

java - 从 OpenAPI 生成 Spring MVC 映射时可以添加方法参数吗?

我的团队正在为我们的项目评估采用 OpenAPI Generator,以声明方式使 Spring MVC 映射与规范保持同步的能力很有吸引力。然而,Spring MVC 的大部分价值来自其自动解析请求信息并将其作为强类型方法参数提供的能力,并且在示例中,我看到生成的 Java 接口仅反映规范中直接列出的请求属性。例如,userId是路径映射中的字符串,在我的控制器中,我想将其作为 aUUID甚至 a User(with DomainClassConverter) 注入。此外,我可能想要访问HttpSession.

有没有办法(除了重写模板)来自定义方法参数,以便我可以获得自动生成的映射但为我自己的要求添加属性?

0 投票
5 回答
10035 浏览

openapi - 将 OpenAPI Generator 与 OpenAPI 3.0 一起使用时,“无法识别的令牌 openapi”错误是什么意思?

我已经编写了 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文件中,我添加了:

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

有谁知道问题出在哪里?

0 投票
0 回答
1796 浏览

openapi-generator - Openapi-generator spring:如何替换 @RequestMapping("${openapi.someproject.base-path:/v1}")

我正在导入一个包含使用 openapi-codegen 生成的 RestResources 的 jar 文件。

部署我的应用程序时,会看到一个名为“${openapi.someproject.base-path:/v1}”的端点。如何将其配置为“/v1”。

我尝试将以下内容放在使用项目的 application.yml 中:

使用 openapi-generator-maven-plugin 生成导入的 jar,如下所示:

api.yml 文件如下所示:

0 投票
0 回答
251 浏览

swagger - Swagger 生成的 Java 客户端没有重载调用,即使查询参数被标记为可选

我正在为我的一个 API 端点(即 /foo2)引入一个可选的 “查询参数”(具有默认值),但希望现有的 API 使用者在重新生成 java 客户端存根时不必对其应用程序进行任何更改从新的招摇文件。

我期待生成的 java 客户端将提供重载方法,以使用和不使用方法参数进行操作,以便我现有的 API 使用者可以在不更改调用的情况下工作。同时,他们可以切换到更通用的产品。

但它只生成后者。我看不到前者。

同时,从同一个 swagger 生成的 python 客户端会抛出一个 var arg,这样它就更灵活,因此新旧产品都可以正常工作。

(使用的招摇样本:附后)

** 描述** 有没有办法用 java 代码生成器克服这个限制。

招摇生成器版本

招摇 2.0

Swagger 声明文件内容或 url

0 投票
2 回答
3395 浏览

swagger - 有没有办法从 C++ 代码生成一个 swagger 规范文件?

我需要在用 C++ 编写的旧 API 接口上创建 HTTP API 层。我的计划是生成 Swagger 或打开 API 文件,然后将其提供给需要编写客户端(将成为新 API 的消费者)或服务器(旧 API 的包装器)的项目。

有什么可以加快这个要求(除了手动解析它们并创建 swagger 规范文件)?即使用C++代码生成swagger JSON/YML文件

0 投票
0 回答
2321 浏览

swagger - 从 ApiControllers (C#, .Net 4.5) 生成 OpenApi 3

我们正在使用 Swashbuckle 在 Asp .Net 4.5(不是 Asp .Net 核心)上使用 C# 生成一个 swagger 2.0 json。我正在尝试调整我们的解决方案以生成 openApi 3.0:

  • 我了解 .Net 4.5 的 Swashbuckle 目前不支持 openApi 3.0
  • 我尝试使用nSwag,但无论使用函数UseSwaggerUi3,还是使用带有SchemaType = SchemaType.OpenApi3 的GenerateForControllersAsync,生成的openApi 似乎总是2.0。

.Net 4.5 的 nSwag 是否支持它?如果没有,是否有任何其他工具或解决方案无需升级到 .Net 核心?

我尝试使用 nSwag 的代码:

谢谢

0 投票
1 回答
2541 浏览

java - Open api 3.0 java code generator - 如何生成实例化列表?

几周前,我们将项目 Swagger 2.0 文件迁移到 Open api 3.0。我们使用 Java 代码生成器来生成我们的类。

使用 Swagger 2.0 和 swagger-codegen-cli-2.2.2.jar,生成的列表如下:

现在,使用 Open api 3.0 和 openapi-generator-cli-3.3.2-20181022.194157-15.jar,我的对象是这样生成的:

我的 yaml 文件如下所示:

我不希望我的列表被声明为空。我查看了生成器 java 选项(https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/java.md),但没有找到任何解决方案。有没有办法让我的列表实例化?

0 投票
0 回答
692 浏览

maven - openapi 生成器 maven 插件:多态性支持

我已经使用多态语法编写了 YAML 文件,但是每当 maven 插件解析具有多态模式的定义时,我都会收到空指针错误。

“openapi-generator-maven-plugin”是否支持多态 YAML 文件来生成 java 存根?

多态定义的一个例子:

以下是我得到的例外:

0 投票
0 回答
494 浏览

openapi - 如何使 OpenAPI 从现有类中选择依赖项

我的 YAML 文件中有一个定义,定义如下:

EquityOptionMarketDataDOEquityOptionConfigurationDO已经存在于 jar 文件中,但是当我使用 open-api 生成器插件生成 Java 存根时,它不会拾取这些依赖项,而是生成一个认为这些文件在同一个包中的代码。

有人可以建议如何使 open-api 生成器选择生成存根的现有类。

0 投票
1 回答
1020 浏览

microservices - jhipster-gateway API 部分 (swagger-ui) 中未列出 API-first rest 端点

使用 jhipster 5.7.2

我创建了一个 api-gateway 和两个微服务。在第一个中,我创建了一个实体,它在网关后面完美运行。网关显示生成的实体的 api 端点。

我生成了第二个微服务,但这次我已经在 yml 文件中定义了一个 api,所以我选择了“API-first”。我的 api 是使用 open-api 3 定义的。我使用那里的说明成功地为我的 api 生成了代码,并测试了使用 curl 直接调用我的微服务端点:此时它按预期工作。

问题:当我把那个微服务放在网关后面时,网关看不到 api。当我进入 api 菜单时,我的微服务显示在下拉列表中,但是当我选择它时,它没有显示任何端点。

我在搜索时发现的一件奇怪的事情是,当我直接在我的微服务上调用以下 URL 时:http://localhost:8082/v2/api-docs(如微服务的“欢迎页面”中所指) ,我得到:

当我的 yml 文件声明 openapi 3.0.1 时,它显示“swagger 2.0”。我搜索并发现了这个问题,它说:

使用 Swagger UI 非常旧的版本(2.2.10),不提供对 Open API 的支持

我虽然 openapi 是问题,所以我将 yml 文件重写为 swagger 2.0,最后我遇到了同样的问题:微服务 API 有效,但网关似乎不可见。

我开始怀疑这是否只是我这边的问题。