Santa 0.8.3

Santa 0.8.3

Christian BraunChristian维护。



Santa 0.8.3

  • 作者:
  • Christian Braun

Santa

Version License Platform

一个受《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 文件。