我们目前正在将loopback3
应用程序迁移到loopback4
。 服务器的迁移是向前推进的,但由于"sdk",迁移angular
客户端似乎成为一个问题。
对于loopback3
,我们使用@mean-expert/loopback-sdk-builder为angular6+
生成客户端sdk。该项目似乎已结束生命周期,与loopback4
不兼容。
为loopback3
生成 sdk 就是这样为我们工作的:
服务器的包.json:
"scripts": {
"gen-sdk": "node ./node_modules/@mean-expert/loopback-sdk-builder/bin/lb-sdk src/server.js ../frontend/src/app/shared/sdk --wipe=enabled"
}
生成器启动服务器的副本,读取不同的内部元数据并将生成的文件写入客户端项目 - 据我所知,它没有利用loopback3
提供的swagger.json
。
我们正在寻找与loopback4
一起使用的替代 sdk。后端提供描述终结点的openapi.json
。
您在angular
项目中使用哪个 SDK(最好是用TypeScript
编写(?是否有生成的代码与@mean-expert/loopback-sdk-builder
主要兼容的 sdk?
到目前为止,我找到并测试了以下项目来生成openapi客户端:
- Openapi-generator
- 缺点:是用Java编写的
- con:一直抛出 NullpointerExceptions(也许我们的 openapi.json 不正确,但这个生成器没有提供有用的错误消息(
- ng-openapi-gen
- 优点:用
TypeScript
写的 - 缺点:生成的操作名称确实是 strage,也许只能与
loopback4
结合使用? - 缺点:该项目似乎不是很活跃
- 优点:用
您建议与loopback4
rest 后端进行哪种angular
设置?
Loopback 4 项目通过其关于从 OpenAPI 规范构建 Angular 应用程序的文档解决了这个问题。
步骤摘要如下:
- 在 Loopback 4 项目中,使用命令
npm run openapi-spec
从控制器生成 openapi-spec 以生成 OpenAPI JSON 文件。 - 在 Angular 应用程序中,使用 ng-openapi-gen 包从上一步中的 OpenAPI JSON 文件生成 Angular API 存根。例如:
ng-openapi-gen --input <path-to-openapi-json> --output <angular-app-path>/src/app/api
<angular-app-path>/src/app/api
目录的内容包含要在 Angular 中使用的 API 模型。有关完整示例,请参阅其文档。