使用Swift编写的网络层抽象库。
Alamofire
Socket
重建所有网络接口,你是否要将所有业务代码中的 Alamofire
替换为新的 Socket
请求?Socket
的新接口来实现,你是否将已经重建的网络接口改回来?Alamofire
,所有请求相关参数都位于业务代码中,并且有多种不同的请求调用方法,如上传、下载以及正常请求调用方法的差异。将所有相关参数打包到一个对象中,可以使用一个方法实现所有不同情况下的请求调用。遵守 命令模式 规则Alamofire
也想使用 Socket
,只需在命令中指定您想要的请求方式,然后扩展相应的请求模式实现(默认仅实现 Alamofire
)redes
的请求规则Requestable
struct LoginApi: Requestable {
var userName: String = ""
var passWord: String = ""
var url: URLConvertible {
return "https://host/to/path"
}
var method: HTTPMethod {
return .POST
}
var var bodies: HTTPBodies {
return [
"user": userName,
"pass": passWord
]
}
var headers: HTTPHeaders {
return [:]
}
}
let loginRequest = LoginApi().action()
loginRequest.responseJSON {
debugPrint($0.result)
}
loginRequest.responseJSON(queue: DispatchQueue.global()) {
debugPrint($0.result)
}
.responseString {
switch $0.result {
case .success(let value):
debugPrint(value)
case .failure(let error):
debugPrint(error)
}
}
// .cancel()
API.swift
并将设置更改为您的服务器配置。)缓存通过系统框架级别的 URLCache
来处理。
Redes
采用 MIT 许可协议。更多详情请参阅 LICENSE 文件。
关注我的 Twitter (@mochxiao)