我刚开始使用Swagger和NodeJS。我能够将Swagger实现到我的NodeExpress应用程序,并且能够准确地生成带有Swagger-Codegen(Typescript-Angular)的typescript-client-code。
我遇到的一个问题是生成的代码分散了很多不同的文件。我希望它只输出一个文件api.ts
,它包含API调用和接口/模型的所有内容。
我一直在寻找解决此问题的方法,因为随着后端的增长,很难读取和维护生成的客户端代码。
任何建议或指示都将非常感激。
节日快乐!谢谢
编辑:我一直在寻找这方面的答案,但仍未找到答案。我目前正在开发一个使用ASP.NET Core的项目,他们使用NSwag
来完成我想用Node Swagger
实现的目标。
答案 0 :(得分:8)
您可以将所有文件编译为单个*.ts
文件,如this post所示。
Swagger代码生成器简化了维护,因为它允许您根据连续集成进行思考。
你不应该担心代码审查或美学(因为它是一个机器生成的代码),但是关于:
如果您正在使用Jenkins或Ansible等CI系统,则可以自动将库部署到private NPM account(适用于JS和TS)或Maven server(适用于Java和Kotlin)。< / p>
保持程序包版本号不断更新将允许IDE正确地提示用户有关API的更新。
答案 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。