SwiftStack 是用 Swift 编写的 Stack Exchange API 的封装。
要在您的项目中使用 Swift Package Manager 使用 SwiftStack,请将其作为依赖项添加到您的 Package.swift
中。
let package = Package(
name: "MyProject",
dependencies: [
.Package(url: "https://github.com/NobodyNada/SwiftStack.git", versions: Version(0,0,0)..<Version(.max, .max, .max))
]
)
您可以使用以下语句导入该模块:import SwiftStack
首先,您需要一个 APIClient
的实例。 通过此实例,您将调用对 Stack Exchange API 的所有请求。
let client = APIClient()
异步请求具有完成处理程序,并且看起来都像这样
client.fetchSites() {
response, error in
}
响应的类型始终为 APIResponse<T: JsonConvertible>
。 在此示例中,T
的类型为 Site
。
当然,当您想要传递参数时,函数可能会更复杂。
同步请求将结果作为 APIResponse<T: JsonConvertible>
返回并 throw
错误。 在此示例中,T
的类型为 Site
。
do {
let response = try client.fetchSites()
} catch {
print("An error occurred: \(error)")
}
当然,当您想要传递参数时,函数可能会更复杂。
每个包含 Stack Exchange API 数据的对象(例如 User
、Question
...)都具有与 API 返回的完全相同的属性名称,即使这些名称不符合 Swift 约定。
文档可以在这里找到:http://swiftstack.sobotics.org