开发者社区> 问答> 正文

如果 API 返回的数据结构发生变更,如何在防腐层中进行调整而不影响上层组件?

如果 API 返回的数据结构发生变更,如何在防腐层中进行调整而不影响上层组件?

展开
收起
冲冲冲c 2024-08-05 20:39:25 27 0
1 条回答
写回答
取消 提交回答
  • 如果 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) 
    ); 
    }
    
    2024-08-05 21:46:52
    赞同 2 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第15讲】:Spring Boot 2.0 API与Spring REST Docs实战 立即下载
Spring Boot2.0实战Redis分布式缓存 立即下载
Apache Flink 流式应用中状态的数据结构定义升级 立即下载