HHBackand-iOS-SDK 0.1.1

HHBackand-iOS-SDK 0.1.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2017年3月
SwiftSwift 版本3.0
SPM支持 SPM

Haijian Huo 维护。



 
依赖
Alamofire~> 4.4.0
SwiftKeychainWrapper~> 3.0.1
 

  • 作者
  • Haijian Huo

Backand-iOS-SDK

为 iOS 编写的 Backand SDK。

关于

Backand-iOS-SDK 使用 Swift 3 编写,提供了 Backand REST API 大多数功能的支持。

内容

要求

  • iOS 8.0+
  • Xcode 8.2

安装

手动

Backand.swift 添加到您的 Xcode 中的项目。

基本用法

设置

将 Backand 导入 AppDelegate.swift 中

import Backand

application:didFinishLaunchingWithOptions: 中设置 SDK

Backand.sharedInstance.setAppName("app-name")
Backand.sharedInstance.setAnonymousToken("anonymous-token")
Backand.sharedInstance.setSignUpToken("sign-up-token")

获取项

获取单个项

let backand = Backand.sharedInstance
backand.getItemWithId("id", "ObjectName", options: nil) { result in
    switch result {
    case .success(let item):
        print(item)
    case .failure(let error):
        // Ouch. Should probably do something here.
    }
}

获取多个项

let backand = Backand.sharedInstance
backand.getItemsWithName("ObjectName", options: nil) { result in
    switch result {
    case .success(let item):
        print(item)
    case .failure(let error):
        // Ouch. Should probably do something here.
    }
}

创建项

let backand = Backand.sharedInstance
backand.createItem(["name": "Jake", "message": "Hello world!", "score": 36], name: "MessageOfTheDay", options: nil) { result in
    switch result {
    case .success:
        // Yay.
    case .failure(let error):
        // Ouch. Should probably do something here.
    }
}

更新项

let backand = Backand.sharedInstance
backand.updateItemWithId("47", item: ["message": "Hello everyone."], name: "MessageOfTheDay", options: nil) { result in
    switch result {
    case .success:
        // Yay.
    case .failure(let error):
        // Ouch. Should probably do something here.
    }
}

删除项

let backand = Backand.sharedInstance
backand.deleteItemWithId("47", name: "MessageOfTheDay") { result in
    switch result {
    case .success:
        // Yay.
    case .failure(let error):
        // Ouch. Should probably do something here.
    }
}

用户注册

let backand = Backand.sharedInstance
let user = [
    "firstname": "First name",
    "lastname": "Last name"
    "email": "[email protected]"
    "password": "password"
    "confirmPassword": "password again"
]
backand.signUp(user) { result in
    switch result {
    case .success:
        // Yay.
    case .failure(let error):
        // Ouch. Should probably do something here.
    }
}

用户登录

let backand = Backand.sharedInstance
backand.signIn("[email protected]", password: "password") { result in
    switch result {
    case .success:
        // Yay.
    case .failure(let error):
        // Ouch. Should probably do something here.
    }
}

高级用法

运行自定义查询

Backand 允许您在云端定义查询。下面是如何运行它们的方法

let backand = Backand.sharedInstance
backand.runQueryWithName("query-name", parameters: nil) { result in
    switch result {
    case .success(let item):
        print(item)
    case .failure(let error):
        // Ouch. Should probably do something here.
    }
}

批量操作

批量操作允许您在一个请求中执行多个操作。

let backand = Backand.sharedInstance
let baseURL = backand.getApiUrl()
let createAction = Action(method: .POST, url: baseURL+"/1/ObjectNameHere", data: ["name": "Jake", "message": "Hi!"])]
let updateAction = Action(method: .PUT, url: baseURL+"/1/ObjectNameHere/ID", data: ["name": "Alex", "message": "Hello!"])
let deleteAction = Action(method: .DELETE, url: baseURL+"/1/ObjectNameHere/ID", data: nil)
let actions = [createAction, updateAction, deleteAction]

backand.performActions(actions) { result in
    switch result {
    case .success:
        // Yay.
    case .failure(let error):
        // Ouch. Should probably do something here.
    }
}

选项 & 筛选

let backand = Backand.sharedInstance

// More operator types available 
let filterName = Filter(fieldName: "name", operatorType: .Equal, value: "Jake")
let filterMessage = Filter(fieldName: "message", operatorType: .StartsWith, value: "Hello")

// More options available
let options: [BackandOption] = [
    .PageSize(10),
    .PageNumber(7),
    .FilterArray([filterName, filterMessage]),
    .ExcludeArray([.Metadata, .TotalRows])
]

// Example request
backand.getItemsWithName("ObjectName", options: options) { result in
    switch result {
    case .success(let items):
        print(items)
    case .failure(let error):
        // Ouch. Should probably do something here.
    }
}