APIClient
集成(Cocoapods)
有三个podspecs
APIClient/Core
包含纯接口/用于抽象实现的类型。 apenas use it when you're about to provide a custom implementation of the request executor.APIClient/Alamofire
包含AlamofireRequestExecutor实现。
用法
所有请求都应该通过APIClient
的实例进行。 它的构造函数需要指定至少一个请求执行器。 在APIClient/Alamofire
的情况下,它是AlamofireRequestExecutor
(它将基URL初始化为您的服务器,并且可选地可自定义以适应需求)。 您还可以提供要由该客户端使用的插件列表(默认情况下,您有ErrorPreprocessorPlugin(errorPreprocessor: NetworkErrorProcessor())
,所以如果您使用自己的列表,请务必将其包含在内)和反序列化程序(默认情况下为JSONDeserializer
)。
下一步是声明您的请求。 请求是提供所需数据的纯对象(值)。 您的请求应该符合三种可用类型之一: APIRequest
、DownloadAPIRequest
或MultipartAPIRequest
(名称对应它们的角色)。 《downloadapirequest》和《multipartapirequest》都是继承自《apirequest》,所以您可以提供任何所需的数据(例如头信息、参数、编码等)。 您至少必须指定基本请求的《_ENDPOINT》。
最后,你需要调用您的客户端的 execute(request:parser:completion:
方法来执行您的请求。在这里,您还需要指定解析器(ResponseParser
协议的一个实例)。您可以直接使用 DecodableParser
和 JSONParser
。
PluginType
APIClient 使用了插件行为,允许您几乎完整地控制其执行流程。您可以通过实现 PluginType
协议并将其传递到客户端的构造函数中来定义自己的插件,这将替换/修改/记录/解析/装饰等任何传递的请求。有关方法的详细列表,请参阅 PluginType
。
APIClient 还包含了一些基本的插件。
AuthorizationPlugin
允许您通过在头中传递令牌来对其请求进行授权。为了使用它,您需要向插件提供 AuthorizationCredentialsProvider
并将您的请求标记为可授权,通过实现空的协议 AuthorizableRequest
。
RestorationTokenPlugin
允许您在令牌过期的情况下恢复会话。为了使用它,您需要提供 AccessCredentialsProvider
(用于获取令牌相关信息;它也有处理恢复结果的回调)以及用于提供执行恢复请求结果的回调。
LoggingPlugin
简单地记录了任何条目到插件中,使用可选提供的闭包。
ErrorDecoratorPlugin
用于将传入的错误 NetworkError
装饰(例如映射)到自定义类型。
ErrorRecovererPlugin
允许简化错误恢复流程
ErrorPreprocessorPlugin
允许您处理纯((httpResponse: HTTPURLResponse, data: Data)
)响应并创建适当的错误。
默认情况下,APIClient 使用 ErrorPreprocessorPlugin(errorPreprocessor: NetworkErrorProcessor())
,这允许我们在处理未捕获的错误时创建 NetworkError.response
。
版本历史
版本 | Swift | 依赖项 | iOS |
---|---|---|---|
2.9.1 |
5.0 | Alamofire 4.9, YALResult 1.4 | 10 |
2.9 |
5.0 | Alamofire 4.8, YALResult 1.4 | 10 |
2.8 |
4.2 | Alamofire 4.7, YALResult 1.1 | 10 |
2.0.1 |
4.2 | Alamofire 4.6, YALResult 1.0 | 10 |
1.1.3 |
4.0 | Alamofire 4.6, BoltsSwift 1.4, ObjectMapper 3.3 | 9 |
1.0.7 |
3 | Alamofire 4, BoltsSwift 1.3, ObjectMapper 2.0 | 9 |