将swagger typescript-fetch api集成到aurelia-cli tyepscript项目中

时间:2017-05-02 09:36:32

标签: typescript npm swagger aurelia aurelia-cli

对于一个web项目,我想创建一个swagger(open api)api,用于后端服务器(go)和前端(aurela-cli + typescript)。

swagger-codegen工具支持以下客户端生成器
- 打字稿角度
- typescript-angular2
- typescript-node
- typescript-fetch

现在,前三个显然不适用于这个问题所以我留下了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目录中。

如何解决此问题的任何帮助都将受到高度赞赏。

P.S。我有一种轻微的感觉,我必须“简单地”将api模块的依赖项及其依赖项等导入aurelia.json ......

1 个答案:

答案 0 :(得分:1)

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

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

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

  1. Clone Swagger Codegen:git clone https://github.com/swagger-api/swagger-codegen.git
  2. 导航到swagger-codegen目录并构建/安装它:
    • mvn clean package
    • mvn install
  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 package
  5. 然后为您的库创建配置文件:

    {
      "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定义的路径。

    如果这对您有帮助,请为存储库加注星标。此外,欢迎提供捐助。