ModelNetworkClient 0.9

ModelNetworkClient 0.9

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

Kevin Wu维护。



 
依赖
JSONModel>= 0
AFNetworking>= 0
 

  • Kevin.Wu

基于AFNetworking和JSONModel集成的ModelNetworkClient最低支持iOS 6.0的开发

(该项目来自百度团购团队,经历了两次重构(一次百度团购、一次百度糯米)产生的网络框架,整理后分享给大家)

依赖外部模块:AFNetworking(2.x+) JSONModel

在开始使用ModelNetworkClient之前,你应该了解JSONModel,这样能更好地使用本模块

ModelNetworkClient主要提供以下功能:

1.自动将网络返回数据(NSData、NSArray、NSDictionary)转换为JSONObject,方便外部模块使用

(可选)功能

2.封装应用网络请求的公共参数,对于App来说,大多数时候服务器都会规定一些基础(公共参数:appVersion、apiVersion、location、userId),App端需要每个接口都传递这些参数,ModelNetworkClient对此进行了封装,可以在重载相关函数,快速实现该功能

3.如果你的服务器返回的数据是框架性的数据,使用JSONModel需要重复创建很多文件,本模块提供了数据预处理,比如服务器统一返回如下字段

{

"errorId":0,

'errorMessage':"message",

'data':DataObject

} 你可以把这3个字段处理到同级的JSONModel目录

{

"errorId":0,

'errorMessage':"message",

//其他返回字段对象,去除了data层的包装,节约JSONModel文件建立的工作量

}

4.提供基于请求path的Http请求数据缓存功能,该功能主要用于

a.提升App的离线使用体验  

b.为你的App提供一些离线功能(比如 我的糯米券、美团券、其他需要缓存的离线信息)

你可以自定义path生成字段

例如:如果你的请求中存在timestamps时,每次基于path生成的缓存路径都会不同,所以此时的缓存是无效的,你需要在生成path之前,让类似的timestamps字段设置为忽略,这样cache path就不会包含这个字段