0005 - Refactor Api Service
对应的官方页面地址
ID:
ADR-0005
状态:
进行中
发表于:
2022-07-08
背景和问题陈述
ApiService
目前负责处理所有 API 请求。这导致该类演变成了一个 Bloater,目前有 2021 行代码,268 个方法。此外,由于它知道与服务器相关的所有内容,因此还需要导入每个请求和响应,这需要将 ApiService
和请求/响应放在同一个 npm 包中。
考虑的方案
提取类 -- 我们应该使用提取类重构来分解类,其中每个域上下文应该有自己的 API 服务。
ApiService
应被转换为通用服务,该服务不关心请求或响应是什么,只能在其他 API 服务中使用。什么也不做 -- 保持原样。
决策结果
选择的方案:提取类。
这些新类的命名应该表示为 {Domain}ApiService
,例如文件夹域应该命名为 FolderApiService
。
重构示例:
folder-api.service.ts
:创建一个新的服务,将方法从ApiService
移动到新服务。在此重构期间,我们还将服务器知识从FolderService
中移出,因为它应该只负责维护其状态。从
ApiService
中删除旧方法。
最后更新于