An network layer framework help you handle JSON to Object mapping, business status judgement etc.
HTWebService 是一套基于 AFNetworking 3.x 的网络层封装,通过分离业务状态和请求状态并提供错误的默认处理,令使用者不需要关注错误情况而集中精力在业务开发上。意在简化网络请求相关的重复工作。
- RESTful 方法全支持
- 分离业务状态和请求状态
- 运用轻量级泛型提供返回对象的类型检查
- Request & Response JSON 日志
- Response 内层数据 JSON 转 Model
在你的 podfile
中加入:
pod 'HTWebService'
然后命令行输入命令:
$ pod install
首先需要告诉框架服务器的地址和接口返回数据的格式。
创建两个类,分别实现 HTWSProtocol
中的 HTWSConfig
协议 和 HTWSResponse
协议。这两个协议分别用于配置框架以及描述接口返回数据格式。详细配置见 Demo 中的 PSWSConfig
和 PSResponse
实现。
调用👇的初始化方法初始化获取一个 webservice 实例。 如果你的 App 需要向不同服务器请求,你可以生成多个配置,初始化多个 webservice 实例。
/**
* 创建并返回一个 `HTWebService` 对象
* @param configuration 必传参数,实现了 HTWSConfig 的配置对象。
* @param response 可选参数,实现了 HTWSResponse 的返回 JSON 结构表示对象。如果传nil,则会采用HTStandardResponse
* @return HTWebService
*/
- (nonnull instancetype)initWithConfig:(nonnull id<HTWSConfig>)configuration
responseStructure:(nullable T)response NS_DESIGNATED_INITIALIZER;
简单地填入 url, 请求方式和请求参数,框架便会自动帮你处理好一切。
[self.webService requestEasilyWithMethod:HTHTTPMethodGET
path:@"api/4/section/2"
parameters:nil
businessSuccess:^(PSResponse * _Nonnull response) {
// 做业务成功之后想做的事情
} finally:^{
// 做网络请求结束之后想做的事情
}];
这是一个 HT 打头的组件,它出生的时候是这个名字。出于纪念意义,就保留这个名字吧。有兴趣的看官可以看看这个组件的由来。