Skip to content

Latest commit

 

History

History
102 lines (65 loc) · 3.48 KB

File metadata and controls

102 lines (65 loc) · 3.48 KB

HTWebService

Build Status docs Pod Version License Platform SwiftCompatible

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

通过 CocoaPods 安装

在你的 podfile 中加入:

pod 'HTWebService'

然后命令行输入命令:

$ pod install

开始使用

一、初始化配置

首先需要告诉框架服务器的地址和接口返回数据的格式。

创建两个类,分别实现 HTWSProtocol 中的 HTWSConfig 协议 和 HTWSResponse 协议。这两个协议分别用于配置框架以及描述接口返回数据格式。详细配置见 Demo 中的 PSWSConfigPSResponse 实现。

二、使用

调用👇的初始化方法初始化获取一个 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 打头的组件,它出生的时候是这个名字。出于纪念意义,就保留这个名字吧。有兴趣的看官可以看看这个组件的由来