如果 API 返回的数据结构发生变更,如何在防腐层中进行调整而不影响上层组件?
如果 API 返回的数据结构发生变更,我们可以在防腐层中调整对应的 Observable 管道,以解析新的数据结构。由于上层封装的 getMemoryUsagePercent 是基于 Observable 构建的,因此不需要进行任何改动。例如,如果 /api/v2/memory/free 和 /api/v2/memory/usage 的返回数据变更为包含 requestId 和 data 的对象,我们只需在对应的 Observable 管道中添加 map 操作符来提取 data 字段。示例调整如下:
export function getMemoryFreeObservable(): Observable<number> {
return fromFetch("/api/v2/memory/free").pipe(
mergeMap((res) => res.json()),
map((data) => data.data)
);
}
export function getMemoryUsageObservable(): Observable<number> {
return fromFetch("/api/v2/memory/usage").pipe(
mergeMap((res) => res.json()),
map((data) => data.data)
);
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。