Squid
Squid 是一个用于 Swift 的声明式和响应式网络库。为 Swift 5 开发,旨在利用最新的语言特性。框架的最终目标是实现易于网络操作,以便编写易于维护的代码。
在它的核心中,它基于 Apple 的 Combine 框架,并使用 Apple 内置的 URL 加载系统 进行网络操作。
功能
目前,Squid 最重要的功能可以概括如下
- 发送 HTTP 请求并接收服务器响应。
- 使用广泛的重试器重试 HTTP 请求。
- 自动请求分页 HTTP 请求的新页面。
- 通过 WebSocket 发送和接收消息。
- 抽象化一组请求的 API 端点和安全机制。
快速入门
首次使用Squid时,您可能会想尝试对一个测试API发起请求。
要在该API上进行一个示例请求,我们首先定义一个API来管理其端点
struct MyApi: HttpService {
var apiUrl: UrlConvertible {
"jsonplaceholder.typicode.com"
}
}
之后,我们可以定义请求本身
struct Todo: Decodable {
let userId: Int
let id: Int
let title: String
let completed: Bool
}
struct TodoRequest: JsonRequest {
typealias Result = Todo
let id: Int
var routes: HttpRoute {
["todos", id]
}
}
然后按照如下方式安排请求
let api = MyApi()
let request = TodoRequest(id: 1)
// The following request will be scheduled to `https://jsonplaceholder.typicode.com/todos/1`
request.schedule(with: api).ignoreError().sink { todo in
// work with `todo` here
}
安装
Squid可以通过Swift软件包管理器以及CocoaPods获得。
Swift 包管理器
使用 Swift 包管理器是使用 Squid 的最简单选项。在 Xcode 中,只需转到 文件 > Swift 包 > 添加依赖...
并添加这个仓库。
如果您正在开发 Swift 包,将 Squid 添加为依赖项就像将其添加到您的 Package.swift
依赖项中一样简单。
dependencies: [
.package(url: "https://github.com/borchero/Squid.git")
]
CocoaPods
如果您仍在使用 CocoaPods 或需要使用它来依赖尚未针对 Swift Package Manager 提供的依赖,您可以在您的 Podfile 中包含以下行以使用 Squid 的最新版本:
pod 'Squid'
文档
文档可在此处找到,提供了库的公共接口的全面文档,以及一系列指导您如何有效地使用Squid的指南。预计将很快添加更多指南。
许可协议
Squid 授权协议为 MIT 协议。