Build Status

关于 SwiftStack

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

创建一个基本请求 (/sites)

首先,您需要一个 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 数据的对象(例如 UserQuestion...)都具有与 API 返回的完全相同的属性名称,即使这些名称不符合 Swift 约定。

文档

文档可以在这里找到:http://swiftstack.sobotics.org