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

时间:2017-12-25 13:34:44

标签: javascript angular express swagger swagger-codegen

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

我遇到的一个问题是生成的代码分散了很多不同的文件。我希望它只输出一个文件api.ts,它包含API调用和接口/模型的所有内容。

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

任何建议或指示都将非常感激。

节日快乐!谢谢

编辑:我一直在寻找这方面的答案,但仍未找到答案。我目前正在开发一个使用ASP.NET Core的项目,他们使用NSwag来完成我想用Node Swagger实现的目标。

2 个答案:

答案 0 :(得分:8)

TL; DR

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

持续整合方法

Swagger代码生成器简化了维护,因为它允许您根据连续集成进行思考。

你不应该担心代码审查或美学(因为它是一个机器生成的代码),但是关于:

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

如果您正在使用Jenkins或Ansible等CI系统,则可以自动将库部署到private NPM account(适用于JS和TS)或Maven server(适用于Java和Kotlin)。< / p>

Private Maven

保持程序包版本号不断更新将允许IDE正确地提示用户有关API的更新。

enter image description here

答案 1 :(得分:3)

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

然后你就可以使用你修改过的模板:

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

但是,无法使用模板更改输出目录结构 单独。为此,您需要一个自定义的codegen模块。您可以create your own或修改其中一个built-in ones