如何根据OpenAPI 3.0规范生成Express + TypeScript API?

13
我使用OpenAPI 3.0为我的REST API服务器编写了规范。现在,我想快速生成一个expressjs应用程序,而不是手动编写大量重复的代码并引入可能存在的所有错误。我知道我可以从editor.swagger.io生成服务器应用程序,但生成的代码是JavaScript,因此我无法使用我的模型中的类型定义!是否有工具可以从OpenAPI 3.0规范中生成使用TypeScript编写的express应用程序?如果它能够创建所有文件夹、控制器,并正确使用模型(以标准方式!),那将极大地加速我的项目进度!
2个回答

9

swagger-node-codegen 能够从 OpenAPI 的 yaml 或 json 文件中生成一个 expressjs 服务器。

下面的命令:

snc schema.yml  -o ./my-api

将生成REST API的框架,如果您在规范中有示例,则会生成模拟数据。然后,您可以添加业务逻辑。
它具有以下功能:
- ES7 - ESLint - YAML配置文件 - Express
唯一的问题是,它不会生成带有模型的TypeScript代码。但是,模型可以轻松地集成到代码中。使用“tsc”升级代码为TypeScript并将所有.js文件重命名为.ts即可完成工作。

4
结合 https://github.com/horiuchi/dtsgenerator ,同时生成 Typescript 模型。 - Aleksi
谢谢Aleksi。这是缺失的一块! - JLavoie
1
swagger-node-codegen 不再维护。 - kmanzana

9
请看以下三个地方:
  • express-openapi-validator:推荐使用的工具,尽管名字只提到了验证器。事实上,它还可以处理路由工作。您只需实现普通的处理程序函数,EOV将根据给定的OAS进行请求验证和请求路由处理;
  • OpenAPI Generator:广泛使用的OpenAPI代码生成工具,支持各种语言和框架的自定义生成器。对于Node.js,有一个nodejs-exporess-server,但标记为beta。实际上,它基于express-openapi-validator
  • openapi.tools:包含许多OpenAPI工具的集合,其中包括很多服务器代码生成工具;

express-openapi-validator被广泛使用并得到积极的维护,因此我认为其质量是可靠的。后两个地方中的工具质量尚未知晓。


1
目前来看,这应该是被接受的答案,因为这些工具仍然可用,而 swagger-node-codegen 不是。 - kmanzana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接