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

JLa*_*oie 5 express typescript openapi-generator

我使用 OpenAPI 3.0 为我的 REST API 服务器编写了规范。现在,与其手动编写大量重复代码,以及可能引入的所有错误,我想快速生成一个 expressjs 应用程序。我知道我可以从editor.swagger.io生成一个服务器应用程序,但是生成的代码是 javascript,所以我不能使用我的模型中的类型!

有没有一种工具可以根据 OpenAPI 3.0 规范生成用 typescript 编写的 express 应用程序?如果它可以创建所有文件夹、控制器并正确使用模型(以标准方式!),那就太棒了。那肯定会很快开始我的项目!

Yue*_* Li 10

可以看看以下3个地方:

  • express-openapi-validator:推荐工具。虽然名字表明它只是一个验证器。它实际上可以处理路由工作。只需实现简单的处理函数,EOV 将根据您提供的 OAS 负责请求验证和请求路由;
  • OpenAPI Generator:广泛使用的 openapi codegen 工具,带有自定义生成器,支持各种语言和框架。对于 Node.js,有一个nodejs-exporess-server,但它被标记为测试版。实际上它是基于express-openapi-validator.
  • openapi.tools:众多可供尝试的 OpenAPI 工具的集合,包括相当多的服务器代码生成工具;

express-openapi-validator被广泛使用并积极维护,所以我认为质量是可靠的。后两个地方的工具质量仍然未知。

  • 这应该是此时可接受的答案,因为这些工具仍然可用,并且“swagger-node-codegen”不可用 (2认同)

JLa*_*oie 8

swagger-node-codegen允许从 OpenAPI yaml 或 json 文件生成expressjs 服务器。

以下命令:

snc schema.yml  -o ./my-api
Run Code Online (Sandbox Code Playgroud)

如果您的规范中有示例,将生成 REST API 的框架,其中包含模拟数据。然后,您可以添加您的业务逻辑。

它具有以下特点:

  • ES7
  • ESLint
  • YAML 配置文件
  • 表达

唯一的问题是,它不会使用模型生成 TypeScript 代码。但这些模型可以轻松地集成到代码中。使用“tsc”升级代码 Typescript 并将所有 .js 文件重命名为 .ts 即可完成此任务。

  • 与 https://github.com/horiuchi/dtsgenerator 结合也可以生成 Typescript 模型。 (4认同)