有人在生产中使用 Swagger Codegen 或 OpenAPI Generator SDK 吗?

Does anyone use Swagger Codegen or OpenAPI Generator SDKs in Production?

Swagger 代码生成器可以生成多种语言的 SDK(下面从 Github 项目页面列出)。有没有人在生产中使用任何 Swagger 自动生成的 SDK,包括 alpha/beta 和 GA,如果是,是什么组织,使用什么语言?

我进行了一些 Google 搜索并四处询问。虽然我发现了很多部署 Swagger UI 的示例,但我还没有找到任何 Code Gen SDK。

项目页面:https://github.com/swagger-api/swagger-codegen

语言:

$ ls -1 modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/
AndroidClientCodegen.java
AsyncScalaClientCodegen.java
CSharpClientCodegen.java
JavaClientCodegen.java
JaxRSServerCodegen.java
NodeJSServerCodegen.java
ObjcClientCodegen.java
PhpClientCodegen.java
PythonClientCodegen.java
RubyClientCodegen.java
ScalaClientCodegen.java
ScalatraServerCodegen.java
SpringMVCServerCodegen.java
StaticDocCodegen.java
StaticHtmlGenerator.java
SwaggerGenerator.java
SwaggerYamlGenerator.java
TizenClientCodegen.java

更新 - 重大项目官方 SDK 跟踪(2018 年 6 月)

我正在跟踪来自此处较大组织的可识别官方代码生成 SDK,以便更好地跟踪采用情况。许多将自己列为使用某些代码生成项目的组织尚未在其 GitHub 帐户上发布 SDK。

更新 - 个人经历(2017 年 12 月)

我现在一直在积极使用 Swagger Codegen for Go (2.2.3 - 2.3.1)。到目前为止,我的经验是它做得不错,但要获得一个可用的 SDK 可能需要进行各种手动调整,因此 GitHub package/repo 仍然不错。您可以在我维护的 SDK 的 GitHub 问题中看到一些问题。我还向每个回购中的 codegen/swagger_codegen_command.sh 文件添加了 post 处理。

更新 - 添加 OpenAPI 生成器(2018 年 7 月)

OpenAPI Generator 是 Swagger Codegen 的一个分支,因此现在也提到了这一点。

我做了 search in Github 并找到了一些由 Swagger-Codegen 生成的项目 (SDK)。

这是一个例子:Online Convert API2 Swift SDK

关于Swagger-Codegen用例的讨论也可以参考Swagger-Codegen Github page

更新:这里有一些但不是全部 companies/projects 在生产中使用 Swagger Codegen:https://github.com/swagger-api/swagger-codegen#companiesprojects-using-swagger-codegen

注意:截至 2017 年 7 月,Swagger Codegen 为 API 客户端、服务器存根和 API 文档提供了 70 多个生成器。

更新:2018 年 5 月,大约 50 名 Swagger Codegen 的顶级贡献者和模板创建者决定分叉 Swagger Codegen 以维护名为 OpenAPI Generator. Please refer to the Q&A 的社区驱动版本以获取更多信息。

作为平台架构师和 DevOps,我可以说我成功地将它引入了一个使用 Dreamfactory API Automation 的项目,因为 BaaS 和 API 是由 swagger 定义的。因此,移动应用程序和内部应用程序的 SDK 是使用 swagger-codegen 生成的。 我们在我们语言的 swagger-codegen 模板中遇到了一些错误,这些错误很容易修复。 总体而言,它节省了很多时间并减少了潜在的错误来源。

我用它来 bootstrap 我们的 API 基于 spring codegen,现在用它来更改和添加域模型和 API 端点。您仍然需要更改生成的 类 的某些方面,但这使重构变得非常轻松,并防止我堆积技术债务。将生成的 swagger-ui 用于手动测试非常有帮助,您可以将规范导入生成存根的 Postman,这样您就有一个很好的起点和 TODO 概述来编写测试。

虽然还没有使用过 SDK。我尝试使用各种 js 客户端,但它们与简单的获取库相比没有任何优势。

我看到 codegen 有很大的潜力用于更复杂的 js 框架,如 Angular 或 React + Redux 以及测试自动化。

Square 在生产中使用它。这是他们写的一篇关于它的文章,它有指向他们的 GitHub Swagger 设置、结果 API 等的链接。

https://swagger.io/blog/api-strategy/how-square-makes-its-sdks/

本文提到了以下 SDK:

You can see the all of the templates and config files that power the {Java, PHP, C#, Python, Ruby, JavaScript} SDKs in the same repository as our specification file: Connect-API-Specification.

以下是他们的一些 SDK: