Santa
一个受《Swift Talk》网络秀第一季启发,基于资源的网络通信库。它将资源的定义与所需的网络堆栈解耦,使实际的网络调用更加容易。
因此,这种类型请求
let request = URLRequest(url: URL(string: "your-url") !)
URLSession.shared.dataTask(with: request) { data, response, error in
let httpResponse = response as! HTTPURLResponse
guard httpResponse.statusCode == 200 else {
fatalError()
}
let products = try !JSONDecoder().decode(Products.self, from: data!)
// Some code to display products on screen
}
可以使用Santa这样编写
let resource = DataResource(url: "your-url", method: .get, body: nil) { data in
return try JSONDecoder().decode(Products.self, from: data)
}
DefaultWebservice().load(resource: resource) { products, error in
if let error = error {
// do error handling
}
// Some code to display products on screen
}
这样,资源就可以轻松放置在它们所属的位置。作为他们打算获取的对象的一部分。
extension Products {
static var all: DataResource < Products > {
return DataResource(url: url, method: .get, body: nil) { data in
return try JSONDecoder().decode(Products.self, from: data)
}
}
}
功能
- 支持自定义授权
- 后台下载任务
- 后台上传任务
- 取消正在运行的URLSessionTasks
- 基于url的ImageCache
- 对错误状态码和网络问题的错误处理
要求
- Swift 5
- iOS 9.0或更高版本
安装
Santa通过CocoaPods提供。要安装它,请在Podfile中添加以下行。
pod 'Santa'
待办事项
- 编写更多测试
- 添加使用说明
- 使多部分表单数据更加灵活
作者
Christian Braun
许可证
Santa 根据 MIT 许可证提供。有关更多信息,请参阅 LICENSE 文件。