Squid 1.5.1

Squid 1.5.1

Oliver Borchert 维护。



Squid 1.5.1

  • Oliver Borchert

Squid

Cocoapods Build CocoaPods Documentation

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 协议。