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 }
-
cacheDefault implementation缓存 目前 taskType 为 request 才生效
Default Implementation
Declaration
Swift
var cache: APICache? { get } -
cacheShouldWriteHandlerDefault 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 -> URLRequestParameters
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 : APIRequestParameters
request发送的URLRequest
response回调结果
replaceCompletionHandler替换返回给业务方的回调,如果不处理,将 response 回调即可
Return Value
处理之后的 URLRequest
-
completeURLExtension method完整的URL 不包含参数,只是 baseURL 与 path 的拼接
Declaration
Swift
public var completeURL: URL { get }
View on GitHub
APIRequest Protocol Reference