Swagger-Codegen:如何将所有文件合并到一个文件中以进行客户端代码生成

Swagger-Codegen: How do I consolidate all files into one file for Client-Code-Generation

我刚刚开始使用 Swagger 和 NodeJS。我能够在我的 NodeExpress 应用程序中实现 Swagger,并且还能够使用 Swagger-Codegen (Typescript-Angular) 准确地生成 typescript-client-code。

我遇到的一个问题是生成的代码分布在许多不同的文件中。我希望它只输出一个文件 api.ts,它包含来自 API 调用和 interfaces/models 的所有内容。

我一直在寻找解决这个问题的方法,因为随着后端的增长,很难阅读和维护生成的客户端代码。

如有任何建议或指点,我们将不胜感激。

节日快乐!谢谢

编辑:几天来我一直在寻找这个问题的答案,但仍然没有找到。我目前正在使用 ASP.NET Core 开发一个项目,他们有 NSwag 可以实现我想用 Node Swagger.

实现的目标

Swagger 使用 Mustache 模板生成代码。为了使更简单 您可以简单地创建 built-in templates 之一的副本和 修改那个。

然后您可以像这样使用修改后的模板:

swagger-codegen-cli generate -t path/to/template/dir/ -i spec.json

但是,无法使用模板更改输出目录结构 独自的。为此,您需要一个自定义代码生成模块。您可以 创建您的 拥有或修改built-in ones.

之一

TL;博士

您可以将所有文件编译成单个 *.ts 文件,如 this post 所示。

持续集成方法

Swagger 代码生成器简化了维护,因为它允许您根据持续集成.

进行思考

您不应该担心代码审查或美学(因为它是机器生成的代码),而是担心:

  • API 版本控制
  • 函数、方法和 类 签名
  • 文档

如果您使用的是 CI 系统,例如 Jenkins 或 Ansible,您可以自动将库部署到 private NPM account (for JS and TS) or Maven server(对于 Java 和 Kotlin)。

保持软件包版本号持续更新将允许 IDE 正确提示用户关于 API 上的更新。