问题标签 [swagger-codegen]

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 回答
2599 浏览

java - 如何让maven在编译时只考虑一组重复文件中的一个?

我正在使用 Swagger (OpenAPI) 来设计和实现 API。我已经有一个功能性的 swagger.yml 和一个 Maven 项目集来基于它构建文档、服务器和客户端。

在目录swagger-codegen-maven-plugin中生成抽象类和实现类/target/generated-sources/swagger。我应该用我自己的覆盖实现类,所以我将实现类的初始版本移动到/src/main/java目录中。

移动类后,我的构建正确完成,但如果我这样做,mvn clean compile我会因为构建中有重复的类而出错。

发生的情况是,每次我进行干净的构建时,swagger-codegen-maven-plugin都会重新生成所有代码,包括我正在重写的类。

swagger-codegen-maven-plugin创建一个.swagger-codegen-ignore我应该列出我不希望它生成的文件的位置,但它似乎不起作用(我使用的是插件的 2.2.2-SNAPSHOT 版本)。

作为一种解决方法,我试图maven-compiler-plugin排除生成的文件版本,以便只有我修改后的实现将用于编译,但它也不起作用。这是我正在使用的配置:

我怎样才能maven-compiler-plugin忽略 swagger Maven 插件生成的文件版本,只考虑我的?

或者:您能否提出替代解决方案,或者如何swagger-codegen-maven-plugin考虑.swagger-codegen-ignore

0 投票
2 回答
863 浏览

typescript - 编译时正常,运行时错误,同时在带有 webpack 的打字稿中使用命名空间中的类

我使用swagger-codegen-l typescript-angular生成 REST 消费者服务库的选项。生成的代码如下所示(DefaultApi.ts):

如您所见,有一些具体的类需要使用,但在命名空间内声明,即不能importAPI.Client.DefaultApi尽管缺少 an ,但我的编辑器(VSCode)在我引用时不会抱怨,import因为它会将定义作为我认为声明的命名空间的一部分。但是在运行时浏览器抱怨API没有定义。

我正在使用 webpack 来捆绑我的代码。我在 SO 上看到了其他一些类似于这个的问题,但那里的答案没有运气。

编辑:

根据要求,这是我的 ts 和 webpack 配置文件:

webpack 配置文件:

tsconfig.json:

0 投票
0 回答
631 浏览

go - swagger codegen 中的 golang 枚举支持

我无法使用 swagger codegen for golang 生成枚举。go model.mustache 和 GoClientCodegen.java 需要做哪些修改?

我在胡子上试过这个:

GoClientCodegen.java 是一样的。java文件和mustache文件中需要修改什么?

0 投票
2 回答
6095 浏览

python - 在 python 中使用 swagger codegen 客户端向 api 调用添加标头的细节尚不清楚

指出正确的文档、教程、示例,或者提供一个,展示如何在 Python 中 Swagger 生成的 API 客户端中的特定标头中添加特定的身份验证令牌?

这是我尝试过的:
我的 API 调用使用正确的 curl 命令可以正常工作:

但是,当我在我的 Python (2.7.12) 客户端中尝试相同的基本请求时,我得到了授权失败,尽管确认令牌使其成为即将使用的标头。有关使用客户端的正确方法或如何获取确切请求和响应的更多详细信息的更多详细信息,我们将不胜感激。

这是一个招摇的 api 规范:swagger.yaml

swagger-codegen 是从http://editor.swagger.io/运行的,我按照 api 示例尝试添加额外的标头:api_example.py

通过将 aprint(self.api_client.default_headers)放入supplier_api.py我可以看到标题确实似乎已设置。

那么我应该在我的示例中更改什么以使其传递标头并完全按照简单 curl 调用的方式获得授权?

更新我也尝试过定义它:

然后只设置密钥:

但是除了标题从我打印的默认标题中消失之外,这并没有太大变化。

0 投票
3 回答
21577 浏览

json - 如何从 OpenAPI/Swagger 模型定义生成 JSON 示例?

我正在为具有 OpenAPI (Swagger) 定义的 REST API 构建一个模糊器。

我想测试 OpenAPI 定义中的所有可用路径,生成数据以测试服务器,分析响应代码和内容,并验证响应是否符合 API 定义。

我正在寻找一种从模型定义中生成数据(JSON 对象)的方法。

例如,给定这个模型:

我想生成随机数据并得到这样的东西:

0 投票
0 回答
53 浏览

swagger - 这个声明wrt swagger框架是什么意思

“方法、参数和模型描述紧密集成到服务器代码中,从而保持 API 及其文档的同步。”

这是否意味着如果我对服务器代码进行任何更改,那么我也必须对 yml 文件进行更改?如果是,那么让我们说,如果我从我的服务器运行 100 个 API(例如,如果使用cherrypy)并且如果我对我的服务器代码进行任何更改以保持 yml 代码和 API 文档同步,我是否需要修改所有 100 个 API 的 yml 代码?

基本上,我想知道如何处理服务器代码的任何更改?是通过修改yml文件还是通过其他方式?

0 投票
0 回答
342 浏览

ios - swagger-api 不能快速工作 3

swift 中的 Swagger-api 给了我一个错误,我不知道如何解决它。 https://github.com/swagger-api/swagger-codegen 这是我下载 swagger-api 的链接。下载后我解压。打开解压后的文件夹 > samples > client > petstore > swift3. 此文件夹中有三个演示,即(默认、promisekit 和 rxSwift)。当我尝试打开它并运行它时,给我一个错误'使用未声明的类型'OuterEnum'和使用未声明的类型'ClassModel'。我不知道如何解决它。请任何人都可以帮助我运行此代码。

0 投票
2 回答
9006 浏览

java - swagger-codegen 客户端:如何在模型中包含杰克逊注解

我正在使用 swagger-codegen 生成一个休息客户端,但我遇到了一个问题,我正在使用的服务返回一个具有继承的模型,API 模型如下所示:

API 模型使用杰克逊注解来处理继承。API 工作正常。当我生成客户端时,客户端模型没有杰克逊注解,所以当我使用生成的客户端使用 API 时,它总是使用 Book 类进行反序列化。它没有“看到” Magazine 类。我认为这是因为生成的模型没有杰克逊注释来处理继承。

如何配置 swagger-codegen 以将杰克逊注释添加到模型中。

非常感谢...

0 投票
2 回答
2584 浏览

java - 如何覆盖默认的 swgger-code-gen 服务实现?

我是 swagger codegen 的新手,我使用的是 2.1.6 版。我正在尝试通过 yaml 和 swagger-codegen-maven 生成休息服务。以下是 pom.xml 的一部分:

swagger生成的ServiceImpl为:

在这里,而不是return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build();,我想将请求处理映射到我自己的请求处理程序,并且我不想将它硬编码为 rest api。

这个想法是,rest-api 是可重用的(jar 文件)。包含 rest-api 作为依赖 jar 的系统将负责构建战争。包装结构是给我的一种石雕要求。:)

有谁知道我如何覆盖这个 ServiceImpl 代码而不做一些疯狂的事情,比如覆盖 DefaultCodeGen 等?是否可以使用模板来实现这一点?

任何输入将不胜感激。

0 投票
1 回答
4068 浏览

python - 将 Swagger/OpenAPI 生成的 python 服务器与现有的 Flask 应用程序集成

我有兴趣将swagger-codegen生成的 Python 服务器与现有的 Flask 应用程序集成。 swagger-codegen生成基于Connexion库的 Python 实现Swagger API specification

我发现的所有示例似乎都期望connexion.App管理整个flask应用程序。

但是,我有现有的蓝图、配置和 sqlalchemy 模型,我想与生成的 Connexion API 集成。它看起来像是connexion.App.app底层的 Flask 应用程序。一种选择可能是进入并扩展 Connexion Flask 应用程序,可能是这样的:

尝试搭载高度定制的 Connexion Flask 应用程序似乎比将裸蓝图集成connexion.Api到我现有的 Flask 应用程序中更简单。但是,我无法轻易判断 Connexion 是否旨在与非 Connexion 管理的蓝图很好地配合使用。

在现有的传统 Flask 应用程序中集成 Connexion Swagger 定义的 API 的最佳方式是什么?有没有人走这条路?