【发布时间】:2017-09-29 18:46:31
【问题描述】:
对于一个 web 项目,我想创建一个 swagger (open api) api 用于后端服务器 (go) 和前端 (aurela-cli + typescript)。
swagger-codegen 工具支持以下客户端生成器
- 打字稿角
- typescript-angular2
- 打字稿节点
- 打字稿提取
现在,前三个显然不适用于这个问题,所以我只剩下typescript-fetch。要从 swagger.yml 生成客户端,我使用以下命令:swagger-codegen generate -i swagger.yml -l typescript-fetch -o api
这会生成一个项目文件夹,如 swagger repository 所示。
问题是如何将其包含在 aurelia 项目中。
我已经运行了npm install,这导致了一个转译的 api.js(和相应的 api.d.ts)。但是,我不确定下一步如何进行。
1) 我应该把这个文件夹放在哪里?
- src/api
- node-modules/<fake-module-name>
- 别的地方
2) 我如何告知 aurelia aurelia.json 文件中的“模块”?
- "<fake-module-name>"
- "{
"name": "<fake-module-name>",
"path": "../node_modules/<fake-module-name>dist",
"main": "api"
}
- 别的东西
我遇到的主要问题是,即使 aurelia.json 知道模块中的 api,此模块中的依赖项也会导致构建过程(au run --watch) 停止,因为它们以某种方式在前端的src 目录。
任何有关如何解决此问题的帮助将不胜感激。
附:我有一种轻微的感觉,我必须“简单地”将 api 模块的依赖项及其依赖项等导入 aurelia.json ...
【问题讨论】:
-
您是否尝试过使用 Nswag 代替客户端代码生成?我提到它是因为它有一个特定的 Aurelia 获取客户端实现。您不必使用 .NET 后端来使其工作,swagger.json 文件应该可以解决问题。见:github.com/NSwag/NSwag
-
是的,我已经研究过 nswag(只是忘了提..)。我不太愿意将它引入我们的构建过程,因为我们不是在 Windows 上工作,并且需要 Mono 或 .NET 控制台库作为开发依赖项。
-
顺便说一句:NSwag 也可以在 MacOS 或 Linux 上的 .NET Core 上运行...
标签: typescript npm swagger aurelia