对于一个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 ......
答案 0 :(得分:1)
我修改了其他一个TypeScript生成器,为Aurelia Fetch Client生成一个TypeScript客户端:
https://github.com/jeremeevans/typescript-aurelia-fetch-client-generator
我的文档现在非常糟糕,但基本步骤是:
然后为您的库创建配置文件:
{
"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定义的路径。
如果这对您有帮助,请为存储库加注星标。此外,欢迎提供捐助。