KituraContracts 是一个库,包含客户端(例如 KituraKit)和服务器(例如 Kitura)代码共享的类型定义。这些共享的类型定义包括 Codable 闭包别名、RequestError、QueryEncoder、QueryDecoder、Coder、Identifier 协议 以及为 String 和 Int 添加符合 Identifier 协议的 扩展。
KituraContracts 表示 Kitura 服务器和 KituraKit 客户端库共有的类型和协议。 如果您正在使用 Kitura 或 KituraKit,您的项目不需要显式依赖 KituraContracts。
将 KituraContracts
包添加到应用程序 Package.swift
文件中的依赖项。 将 "x.x.x"
替换为最新的 KituraContracts
版本。
.package(url: "https://github.com/Kitura/KituraContracts.git", from: "x.x.x")
将 KituraContracts
添加到您的目标依赖项
.target(name: "example", dependencies: ["KituraContracts"]),
import KituraContracts
此示例展示了如何在 users
路由器的 POST 方法中使用共享的类型定义 RequestError
。 如果没有发生错误并且您有一个 User
,您可以返回该用户,并将 nil 作为 RequestError?
值传递。 如果发生错误,您可以返回相应的错误,并将 nil 传递给 User?
。
public struct User: Codable {
...
}
router.post("/users") { (user: User, respondWith: (User?, RequestError?) -> Void) in
if databaseConnectionIsOk {
...
respondWith(user, nil)
} else {
...
respondWith(nil, .internalServerError)
}
}
1.x.x 版本已在 macOS 和 Linux 上使用 Swift 4.1 二进制文件进行了测试。 请注意,这是 Xcode 9.3 中包含的默认 Swift 版本。
有关更多信息,请访问我们的 API 参考。
我们很乐意讨论服务器端 Swift 和 Kitura。 加入我们的 Slack 来认识团队!
该库在 Apache 2.0 许可下获得许可。 完整的许可文本可在 LICENSE 中找到。