Kitura-CouchDB 是一个纯 Swift 客户端,允许 Kitura 应用程序与 CouchDB 或 Cloudant 数据库进行交互。
将 Kitura-CouchDB
包添加到您的应用程序 Package.swift
文件中的依赖项。 将 "x.x.x"
替换为最新的 Kitura-CouchDB
版本。
.package(url: "https://github.com/Kitura/Kitura-CouchDB.git", from: "x.x.x")
将 CouchDB
添加到你的目标的依赖项中
.target(name: "example", dependencies: ["CouchDB"]),
import CouchDB
要运行 CouchDB 示例,您必须按照以下步骤设置并连接到本地 CouchDB 数据库
在 CouchDB 中设置管理员用户名和密码。
创建一个名为 kitura_test_db
的数据库。
克隆此存储库
git clone https://github.com/Kitura/Kitura-CouchDB.git
在 Sources\CouchDBSample\main.swift
中更新以下代码,使用您的管理员用户名和密码 (主机将默认为 127.0.0.1,端口将默认为 5984)
let connProperties = ConnectionProperties(
host: host, // http address
port: port, // http port
secured: secured, // https or http
username: nil, // admin username
password: nil // admin password
)
打开一个终端窗口,进入 Kitura-CouchDB
文件夹并运行 swift build
swift build
运行 CouchDBSample 可执行文件
.build/debug/CouchDBSample
您应该看到信息性消息,例如 "Successfully created the following JSON document in CouchDB:",针对在 kitura_test_db
数据库上执行的每个操作(创建、读取、更新和删除)。
CouchDB 是一个 NoSQL 数据库,用于存储文档。 Document
是任何可以表示为 JSON 并且包含 _id
和 _rev
字段的结构。
_id
字段是文档的唯一标识符。 如果未设置,将为文档分配一个随机 UUID。_rev
字段是文档的版本。 它在您发出请求时返回,并用于防止多个用户更新同一文档时发生冲突。要定义 CouchDB 文档,请创建一个 Swift 对象并使其符合 Document
协议
struct MyDocument: Document {
let _id: String?
var _rev: String?
var value: String
}
CouchDBClient
表示与 CouchDB 服务器的连接。 它使用您的 ConnectionProperties
初始化,并处理 CouchDB 数据库的创建、检索和删除。
// Define ConnectionProperties
let conProperties = ConnectionProperties(
host: "127.0.0.1", // http address
port: 5984, // http port
secured: false, // https or http
username: "<CouchDB-username>", // admin username
password: "<CouchDB-password>" // admin password
)
// Initialize CouchDBClient
let couchDBClient = CouchDBClient(connectionProperties: conProperties)
couchDBClient.createDB("NewDB") { (database, error) in
if let database = database {
// Use database
}
}
couchDBClient.retrieveDB("ExistingDB") { (database, error) in
if let database = database {
// Use database
}
}
couchDBClient.deleteDB("ExistingDB") { (error) in
if let error = error {
// Handle the error
}
}
Database
类用于向相应的 CouchDB 数据库发出 HTTP 请求。 此类可以为以下对象发出 CRUD(创建、检索、更新、删除)请求
Document
DesignDocument
Document
附件以下代码演示了单个 Document
的 CRUD 操作
var myDocument = MyDocument(_id: "Kitura", _rev: nil, value: "Hello World")
database.create(myDocument) { (response, error) in
if let response = response {
print("Document: \(response.id), created with rev: \(response.rev)")
}
}
database.retrieve("Kitura") { (document: MyDocument?, error: CouchDBError?) in
if let document = document {
print("Retrieved document with value: \(document.value)")
}
}
myDocument.value = "New Value"
database.update("Kitura", rev: "<latest_rev>", document: myDocument) { (response, error) in
if let response = response {
print("Document: \(response.id), updated")
}
}
database.delete("Kitura", rev: "<latest_rev>") { (error) in
if error == nil {
print("Document successfully deleted")
}
}
有关更多信息,请访问我们的 API 参考。
我们喜欢谈论服务器端的 Swift 和 Kitura。 加入我们的 Slack 来认识团队!
此库根据 Apache 2.0 获得许可。 完整的许可证文本可在 LICENSE 中找到。