APIRequest
public protocol APIRequest
请求协议 每一个域名一个
-
回调实体
Declaration
Swift
associatedtype Response : APIParsable
-
基础地址
Declaration
Swift
var baseURL: URL { get }
-
接口路径
Declaration
Swift
var path: String { get }
-
方法
Declaration
Swift
var method: APIRequestMethod { get }
-
参数
Declaration
Swift
var parameters: [String : Any]? { get }
-
header
Declaration
Swift
var headers: APIRequestHeaders? { get }
-
任务类型
Declaration
Swift
var taskType: APIRequestTaskType { get }
-
参数编码处理
Declaration
Swift
var encoding: APIParameterEncoding { get }
-
cache
Default implementation缓存 目前 taskType 为 request 才生效
Default Implementation
Declaration
Swift
var cache: APICache? { get }
-
cacheShouldWriteHandler
Default implementation是否允许缓存 可根据业务实际情况控制:比如业务code为成功,业务数据不为空 这个闭包之所以不放入 APICache 内部的原因是 享受泛型的回调
Default Implementation
Declaration
Swift
var cacheShouldWriteHandler: ((APIResponse<Response>) -> Bool)? { get }
-
intercept(parameters:)
Default implementation拦截参数,在参数编码之前 可以用于加上一些统一参数的场景
Default Implementation
Declaration
Swift
func intercept(parameters: [String : Any]?) -> [String : Any]?
Parameters
parameters
业务方传入的参数
Return Value
处理后的参数
-
intercept(urlRequest:)
Default implementation拦截urlRequest,在传给client之前 可以用于添加统一Header等场景
Default Implementation
Declaration
Swift
func intercept(urlRequest: URLRequest) throws -> URLRequest
Parameters
urlRequest
已经构造的 URLRequest
Return Value
处理之后的 URLRequest
-
intercept(request:response:replaceResponseHandler:)
Default implementation拦截回调,在回调给接收方之前
Default Implementation
Declaration
Swift
func intercept<U>(request: U, response: APIResponse<Response>, replaceResponseHandler: @escaping APICompletionHandler<Response>) where U : APIRequest
Parameters
request
发送的URLRequest
response
回调结果
replaceCompletionHandler
替换返回给业务方的回调,如果不处理,将 response 回调即可
Return Value
处理之后的 URLRequest
-
completeURL
Extension method完整的URL 不包含参数,只是 baseURL 与 path 的拼接
Declaration
Swift
public var completeURL: URL { get }