【问题标题】:Integrate swagger typescript-fetch api into aurelia-cli tyepscript project将 swagger typescript-fetch api 集成到 aurelia-cli tyepscript 项目中
【发布时间】: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


【解决方案1】:

我修改了其他一个 TypeScript 生成器来为 Aurelia Fetch Client 生成一个 TypeScript 客户端:

https://github.com/jeremeevans/typescript-aurelia-fetch-client-generator

我的文档现在非常糟糕,但基本步骤是:

  1. 克隆 Swagger 代码生成器:git clone https://github.com/swagger-api/swagger-codegen.git
  2. 导航到 swagger-codegen 目录并构建/安装它:
    • mvn 清洁包
    • mvn 安装
  3. 回到你的 git 目录并克隆 typescript-aurelia-fetch-client-generator:Git clone https://github.com/jeremeevans/typescript-aurelia-fetch-client-generator.git
  4. 导航到 typescript-aurelia-fetch-client-generator 目录并构建它:
    • mvn 包

然后为你的库创建一个配置文件:

{
  "packageName": "MyLibraryName",
  "modelPropertyNaming": "original" // if you want to keep your casing on the models.
}

然后构建您的 TypeScript 客户端,导航到 Swagger Codegen 目录并运行:

java -cp '../typescript-aurelia-fetch-client-generator/target/typescript-aurelia-fetch-client-swagger-codegen-1.0.0.jar;./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar' io.swagger.codegen.Codegen -i http://localhost:8080/swagger/docs/v4 -l typescript-aurelia-fetch-client -o c:\temp\OutputFolder -c C:\temp\yourconfig.json

显然,将 http://localhost:8080/swagger/docs/v4 替换为 Swagger 定义的路径。

如果这对您有帮助,请为存储库加注星标。另外,欢迎投稿。

【讨论】:

    猜你喜欢
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 2019-07-24
    • 2020-04-16
    • 2018-03-11
    相关资源
    最近更新 更多