Kitura

APIDoc Build Status - Master macOS Linux Apache 2 Slack Status

Kitura-CouchDB

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

运行 Kitura-CouchDB 示例

要运行 CouchDB 示例,您必须按照以下步骤设置并连接到本地 CouchDB 数据库

  1. 下载并安装 CouchDB。

  2. 在 CouchDB 中设置管理员用户名和密码。

  3. 创建一个名为 kitura_test_db 的数据库。

  4. 克隆此存储库

    git clone https://github.com/Kitura/Kitura-CouchDB.git
  5. 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
    )
  6. 打开一个终端窗口,进入 Kitura-CouchDB 文件夹并运行 swift build

    swift build
  7. 运行 CouchDBSample 可执行文件

    .build/debug/CouchDBSample

    您应该看到信息性消息,例如 "Successfully created the following JSON document in CouchDB:",针对在 kitura_test_db 数据库上执行的每个操作(创建、读取、更新和删除)。

API 文档

文档

CouchDB 是一个 NoSQL 数据库,用于存储文档。 Document 是任何可以表示为 JSON 并且包含 _id_rev 字段的结构。

要定义 CouchDB 文档,请创建一个 Swift 对象并使其符合 Document 协议

struct MyDocument: Document {
   let _id: String?
   var _rev: String?
   var value: String
}

CouchDBClient

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 的 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 中找到。