由社区支持的 FaunaDB Swift 驱动程序

FaunaDB 的 Swift 驱动程序现在由“社区支持”。除非社区成员贡献了必要的更改,否则新功能将不会在驱动程序中公开。 如果您有任何问题/疑虑,或者希望在驱动程序的开发中发挥更积极的作用(例如,与我们合作并作为驱动程序的“维护者”),请发送电子邮件至 product@fauna.com

CocoaPods Coverage Status License

适用于 FaunaDB 的 Swift 驱动程序

支持的平台

文档

请查看特定于 Swift 的参考文档

您可以在 FaunaDB 文档 和我们的示例项目中找到更多信息。

使用驱动程序

安装

CocoaPods

pod 'FaunaDB', '~> 2.0.0'

Carthage

github 'fauna/faunadb-swift'

SwiftPM

.Package(url: "https://github.com/fauna/faunadb-swift.git", Version(2, 0, 0))

基本用法

import FaunaDB

struct Post {
    let title: String
    let body: String?
}

extension Post: FaunaDB.Encodable {
    func encode() -> Expr {
        return Obj(
            "title" => title,
            "body" => body
        )
    }
}

extension Post: FaunaDB.Decodable {
    init?(value: Value) throws {
        try self.init(
            title: value.get("title") ?? "Untitled",
            body: value.get("body")
        )
    }
}

let client = FaunaDB.Client(secret: "your-key-secret-here")

// Creating a new post
try! client.query(
    Create(
        at: Class("posts")
        Obj("data" => Post("My swift app", nil))
    )
).await(timeout: .now() + 5)

// Retrieve a saved post
let getPost = client.query(Get(Ref(class: Class("posts"), id: "42")))
let post: Post = try! getPost.map { dbEntry in dbEntry.get("data") }
    .await(timeout: .now() + 5)

有关更多示例,请查看我们的在线文档和我们的示例项目

贡献

非常欢迎 GitHub Pull Request。

驱动程序开发

您可以使用以下命令编译并运行测试

FAUNA_ROOT_KEY=your-keys-secret-here swift test

许可证

版权所有 2018 Fauna, Inc.

根据 Mozilla Public License, Version 2.0(“许可证”)获得许可;除非符合许可证的规定,否则您不得使用本软件。 您可以在以下位置获得许可证副本:

http://mozilla.org/MPL/2.0/

除非适用法律要求或以书面形式达成一致,否则按“原样”分发的软件不附带任何形式的担保或条件,无论是明示的还是暗示的。 有关管理权限和限制的特定语言,请参阅许可证。