我刚刚开始使用Swagger和NodeJS。我能够将Swagger实现到我的NodeExpress应用程序,并且能够准确地生成带有Swagger-Codegen(Typescript-Angular)的typescript-client-code。
我遇到的一个问题是生成的代码分散了很多不同的文件。我希望它只输出一个文件api.ts
,它包含API调用和接口/模型的所有内容。
我一直在寻找解决这个问题的方法,因为随着后端的增长,很难读取和维护生成的客户端代码。
任何建议或指示将不胜感激。
节日快乐!谢谢
编辑:我一直在寻找这个问题的答案,但仍然没有找到答案。我目前正在开发一个使用ASP.NET Core的项目,他们有NSwag
,它可以实现我想用Node Swagger
实现的目标。
您可以将所有文件编译为单个*.ts
文件,如this post所示。
Swagger代码生成器简化了维护,因为它允许您根据连续集成进行思考。
你不应该担心代码审查或美学(因为它是一个机器生成的代码),但是关于:
如果您正在使用诸如Jenkins或Ansible之类的CI系统,则可以自动将库部署到private NPM account(用于JS和TS)或Maven server(用于Java和Kotlin)。
保持程序包版本号不断更新将允许IDE正确地提示用户有关API的更新。
Swagger使用Mustache模板生成代码。为了进行更简单的更改,您可以简单地创建其中一个built-in templates的副本并进行修改。
然后你可以像这样使用你修改过的模板:
swagger-codegen-cli generate -t path/to/template/dir/ -i spec.json
但是,输出目录结构不能仅使用模板进行更改。为此,您需要一个自定义codegen模块。你可以create your own或修改其中一个built-in ones。