GDNetworking-X
安装
GDNetworking-X 可通过 CocoaPods 获取。要安装它,只需在您的 Podfile 中添加以下行:
pod 'GDNetworking-X'
作者
journey, [email protected]
许可证
GDNetworking-X 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。
设计
总体结构:离散式网络框架结构
思维导图
主要数据类图设计
使用方法
每个独立的API请求类都继承自GDBaseRequest父类。在子类中重写父类的方法以实现自定义功能
创建请求
GDNetworking-X(以下简称X)是一种离散式的网络框架,每个请求都必须创建一个继承自GDBaseRequest的类。如果接口需要传入固定参数,建议重写-initWith方法。
请求的URL类型
X支持三种URL类型:服务器类型、CDN类型、Instagram类型。目前我们项目中只有服务器和Instagram两种URL,建议独立复写请求基础地址。
服务器类型
X默认的URL类型就是服务器类型,建议仍然重写- (NSString *)baseUrl方法,返回服务器基础地址。请求的地址如"/v2/login"在- (NSString *)requestURL方法中重写。
CDN类型(外部资源网址)
此类请求必须重写-(BOOL)useCDN方法并返回YES,在- (NSString *)cdnUrl方法中返回CDN基础地址,其余同上。
Instagram类型
此类请求必须重写-(BOOL)useInsta方法并传回YES,在- (NSString *)instaUrl方法中传回insta基地址,其他同上
请求头
重写子类- (NSDictionary *)requestHeaderFieldValueDictionary方法,为请求头提供数据
请求类型
重写子类- (GDRequestType)requestType方法传回请求类型,目前支持五种请求类型
请求序列化
非必要!针对某些需要特定序列化数据的请求,重写- (GDRequestSerializerType)requestSerializerType方法,目前支持三种方式,默认序列化方式是HTTP,针对解密握手请求内置了两种加密方式,目前没有这类请求。
返回数据序列化
针对请求返回值的序列化,默认为Json格式序列化。X提供了四种返回值序列化方式。
Hook返回值
针对项目中需要对请求返回值进行数据处理,例如字典转模型的操作,X提供了hook的方式,子类中重写- (void)requestSuccessFilter方法,可以获取到返回数据进行处理,fail也是一样,提供了- (void)requestFailFilter方法。
回调
X提供了三种回调方式,SEL、block和delegate,鉴于目前项目中的代码,建议使用block回调,通过request.jsonObject和request.error分别获取返回值或者请求错误信息。
缓存
X支持根据时间和版本号来处理缓存。
下载
X支持断点续传等常规下载功能,沙盒地址请参照代码
其他
请参见demo