BackboneSwift 3.0.0

BackboneSwift 3.0.0

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

Fer CanonMiguel MartinFer Canon 维护。



 
依赖关系
SwiftyJSON>= 0
Alamofire>= 0
PromiseKit/CorePromise>= 0
 

  • 作者:Fernando Canon
  • 通过

BackboneSwift3.0

摘要

BackboneSwift 是一个由 Backbone JS 启发的简单 REST 客户端。BackboneSwift 提供了由 AlamofirePromiseKitSwiftyJSON 组成的组合,便于您轻松创建模型和集合。

代码示例

声明您的自定义模型和集合

import BackboneSwift

// Declare a model that inherits from BackboneSwit.  
    class Repo : Model {
        var name: String = ""
        var html_url: String = ""
        var score:Int = 0
    }


    class Repositories: BaseCollection <Repo> { // create the collection

    }

然后就可以使用了

//GET example in a tableViewController

    var githubRepositories = Repositories(baseUrl:"https://api.github.com/search/repositories")

    override func viewDidLoad() {
        // Use the HttpOptions to add a query
        let requestOptions = HttpOptions(queryString: "q=language:swift&sort=stars&order=desc")
        // HTTP GET
        githubRepositories.fetch(usingOptions:requestOptions).then { (repos:Repositories, _) -> Void in //Asynch call back
            self.tableView.reloadData()
        }.catch { (error) in
            // This will always get called if something goes wrong
            print(error)
        }
    }

其他 HTTP 方法

      // POST
        Repo().create().then { (repo:Repo, metadata:ResponseMetadata)  -> Void in
            // do whatever you want 
        }

        // DELETE
        Repo().delete().then { (repo:Repo, metadata:ResponseMetadata)  -> Void in
          // do whatever you want   
        }
        // UPDATE
        Repo().save().then { (repo:Repo, metadata:ResponseMetadata) -> Void in
           // do whatever you want  
        }

动机

Swift 是一种强类型语言,在从 json 文件创建对象时可能会变得相当复杂。BackboneSwift 通过处理可选的展开、http 连接的响应以及所有这些的异步操作来抽象这种复杂性。BackboneSwift 还提供了面向 Promise 的语法来避免“回调地狱”。我们非常喜欢在 Swift 中使用承诺。

安装

只需将其复制到您的 Podfile 中

$ pod 'BackboneSwift'

测试

下载代码并安装 pod file。pod install

运行测试目标或使用包含的 Demo 应用程序

贡献者

Fer CanonMiguel MartinMario Rosales

许可证

版权所有 2017 Fer Canon

以下条件下,任何人都可以免费获取并获取此软件及其相关文档文件(“软件”)的副本(“软件”),可以无限制地处理该软件,包括无限制地使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许所有获得软件的人这样做,前提是

在任何副本或软件的主要部分中应包含上述版权声明和本许可声明。

本软件按“现状”提供,不提供任何形式的担保,包括但不限于针对适销性、特定用途的适用性和非侵权的担保。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担责任,无论根据合同行为、侵权或其他行为,是否与软件或软件的使用或其他交易有关。