一、现有网络层存在以下问题:
1,不支持取消
2,超时时间不能定制
3,公司平台部门封装了三方库但是只对外提供了三方库的部分接口,不能直接使用三方库的定制属性。
4,需要在好多地方添加case的处理才能添加完一个请求。(需要添加缓存路径、手动添加QA环境的网络请求和返回数据的Log)
5,上传、下载、普通请求没有统一底层处理。
6,缓存是强制每个请求都有的,需要改为配置,不需要缓存的不缓存。
7,不支持mock数据。
二、重构后网络层具有以下优势:
1,基于moya,request时返回cancellable,可支持取消
2,基于moya,可设置requestClosure,里边能拿到URLRequest对象,可设置超时时间及其他request属性。
3,组件各自添加一个继承自TargetType协议的枚举后,大多数情况下只需要指定path和task(parameters)两个变量返回值即可实现http请求添加。
4,下载和普通请求目前都基于VKNetwork进行请求,上传后续也改成基于VKNetwork。
5,缓存自动根据local、localThenRemote、localOrRemote、remote、remoteThenLocal区分是否需要缓存,当为local或remote时不进行缓存,其他case会自动缓存。
6,基于moya,可设置stubClosure为.delayedStub,即可实现mock数据,返回TargetType的sampleData的数据。
7,baseInfo、dataCompression公共信息下沉,业务层无需进行配置,自动添加。
8,AppInfo配置信息(QA、DEBUG、TOOL)下沉,以便各组件使用配置信息。
9,QA环境自动添加Logger插件,进行网络请求和返回数据的打印,不需要手动添加。
网友评论