目前,我将对后端的每个API调用都放在一个文件webService.ts下。
但是,随着我的API变得更加复杂,将有很多路径需要请求,而且webServices.ts可能非常长,很难管理。
管理一个大型项目的所有API调用服务的正确方法是什么?
我用的是角/普通/http。
谢谢!
发布于 2018-09-28 02:38:11
首先,创建一个包含常见内容的BaseApiService抽象类,例如:
如果将响应转换为模型,则创建一个尽可能通用的方法。记住要泛化地键入这个类,使用类型记录作为你的朋友。
如果您已经有了许多服务,就很容易识别可以提取到该类中的常见重复代码。
此抽象类可能包含一些常量(如api url )或您可能使用的一些参数,如默认页大小.
然后,通过扩展该类并仅覆盖所需的内容来创建特定的服务。
不要使用公共/http。HttpClient更好、更灵活,例如它允许使用拦截器。拦截器的一个很好的用途是自动地将带有auth令牌的头附加到所有请求中。
我可以给你很多提示,但我在手机上打字。-D
更新
现在我在电脑上,看看我的ApiProvider,希望它能帮到你。
发布于 2018-09-28 02:28:09
您可以创建一个https://medium.com/@krishna.acondy/a-generic-http-service-approach-for-angular-applications-a7bd8ff6a068来发出GET/POST/PUT请求,这将接受来自其他服务的类型和url。
泛型服务将通过具有必要参数的相关组件服务调用。
另外,我建议使用HttpClient。
发布于 2018-09-28 05:27:56
我们构建我们的前端http服务以与后端服务相对应。因此,当后端有像/api/product和/api/transactions这样的服务时,我们就有两个前端服务:product.service.ts和transactions.service.ts。在这些服务中,我们有与后端相同的功能。这些服务还映射了从dto到前端模型接口的响应。
如果一个以上的模块使用它(不管它是服务还是组件),我们将它放在共享/公共目录中。
https://stackoverflow.com/questions/52547437
复制相似问题