16

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

我做了一些谷歌搜索并四处询问。虽然我发现了许多部署 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 包/repo 仍然不错。您可以在我维护的 SDK 的 GitHub 问题中看到一些问题。codegen/swagger_codegen_command.sh我还在每个 repo中的文件中添加了后期处理。

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

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

4

4 回答 4

10

在 Github 上搜索了一下,发现了一些 Swagger-Codegen 生成的项目(SDK)。

下面是一个例子:在线转换 API2 Swift SDK

您也可以参考Swagger-Codegen Github 页面讨论 Swagger-Codegen 的用例

更新:这里有一些但不是所有在生产中使用 Swagger Codegen 的公司/项目:https ://github.com/swagger-api/swagger-codegen#companiesprojects-using-swagger-codegen

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

更新:2018 年 5 月,Swagger Codegen 的大约 50 位顶级贡献者和模板创建者决定分叉 Swagger Codegen 以维护一个名为OpenAPI Generator的社区驱动版本。请参阅问答以获取更多信息。

于 2015-07-12T04:29:52.357 回答
7

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

于 2016-07-24T12:16:05.560 回答
2

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

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

我看到了 codegen 对于更复杂的 js 框架(如 Angular 或 React + Redux)以及测试自动化的巨大潜力。

于 2017-07-06T11:00:57.617 回答
1

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

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

本文提到了以下 SDK:

您可以在与我们的规范文件相同的存储库中查看为 {Java、PHP、C#、Python、Ruby、JavaScript} SDK 提供支持的所有模板和配置文件:Connect-API-Specification。

以下是他们的一些 SDK:

于 2021-01-16T16:24:35.457 回答