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

时间:2015-05-20 07:11:44

标签: sdk swagger auto-generate swagger-codegen openapi-generator

Swagger Code Generator可以生成多种语言的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月)

我在这里跟踪来自大型组织的可识别的官方codegen SDK,以更好地跟踪采用情况。许多将自己列为使用某些codegen项目的组织尚未在其GitHub帐户上发布SDK。

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

我现在一直在积极使用Swagger Codegen for Go(2.2.3 - 2.3.1)。到目前为止,我的经验是它做得不错,但是需要各种手动调整来获得一个可用的SDK,所以GitHub包/ repo仍然很好。您可以在我维护的SDK中看到GitHub问题中的一些问题。我还将后期处理添加到每个仓库中的codegen/swagger_codegen_command.sh个文件中。

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

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

4 个答案:

答案 0 :(得分:8)

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

以下是一个示例:Online Convert API2 Swift SDK

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

更新:以下是生产中使用Swagger Codegen的部分但并非所有公司/项目:https://github.com/swagger-api/swagger-codegen#companiesprojects-using-swagger-codegen

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

答案 1 :(得分:5)

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

答案 2 :(得分:2)

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

但是,Haven还没有使用SDK。我尝试使用各种js客户端,但它们并没有提供优于简单获取库的任何优势。

我发现codegen在更复杂的js框架(如Angular或React + Redux)以及测试自动化方面具有巨大的潜力。

答案 3 :(得分:1)

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

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

本文提到了以下 SDK:

<块引用>

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

以下是他们的一些 SDK: