SwiftRestModel 2.0.4

SwiftRestModel 2.0.4

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2016年10月
SwiftSwift 版本3.0
SPM支持 SPM

Juraj Hilje 维护。



 
依赖
Alamofire~> 4.0.1
SwiftyJSON~> 3.1.0
HTTPStatusCodes~> 3.1.0
 

  • Juraj Hilje

codebeat badge

SwiftRestModel 是一个用于使用 Alamofire 和 SwiftyJSON 与 RESTful API 进行通信的小型辅助类。

依赖

集成

您可以通过将其添加到 Podfile 中使用 CocoaPods 来安装 SwiftRestModel

platform :ios, '9.0'
use_frameworks!

target 'MyApp' do
    pod 'SwiftRestModel'
end

App Transport Security 阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过您的应用的 Info.plist 文件配置临时例外。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

示例项目

您需要先安装 CocoaPods

获取源代码,然后安装依赖项。

$ git clone [email protected]:Rentlio/SwiftRestModel.git
$ cd SwiftRestModel
$ pod install
$ open SwiftRestModel.xcworkspace

基本用法

发送请求

let model = SwiftRestModel(rootUrl: "http://jsonplaceholder.typicode.com/posts")

model.fetch()
// GET "/posts"

成功处理

model.fetch(success: {
    response in
    print(response)
    // or print(model.data)
})

错误处理

model.fetch(error: {
    response in
    print(response)
})

方法

  • fetch()
  • save()
  • destory()
  • request()

创建

model.save(data: ["foo": "bar"])
// POST "/posts" {foo: bar}

默认参数

  • data: [:]
  • 编码: JSONEncoding.default
  • success: nil
  • error: nil

读取

model.fetch(data: ["foo": "bar"])
// GET "/posts?foo=bar"

默认参数

  • data: [:]
  • success: nil
  • error: nil

更新

model.data["id"] = 1

model.save(data: ["foo": "bar"])
// PUT "/posts/1" {foo: bar}

默认参数

  • data: [:]
  • 编码: JSONEncoding.default
  • success: nil
  • error: nil

删除

model.destroy()
// DELETE "/posts/1"

默认参数

  • success: nil
  • error: nil

请求

model.request(
    method  : "get",
    url     : "http://jsonplaceholder.typicode.com/posts",
    data    : ["foo": "bar"],
    headers : ["Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="],
    encoding: URLEncoding.default,
    success : {
        response in
        print(response)
    },
    error   : {
        response in
        print(response)
    }
)
// GET "/posts?foo=bar"

默认参数

  • method: "get"
  • url: ""
  • data: [:]
  • headers: [:]
  • 编码: URLEncoding.default
  • success: nil
  • error: nil

模型

从SwiftRestModel继承子类来组织您的API模型

class Posts: SwiftRestModel {

    let url = "http://jsonplaceholder.typicode.com/posts"

    init() {
        super.init(rootUrl: self.url)
    }

    // Custom Endpoint
    func fetchFirst(data data: Dictionary<String, AnyObject> = [:], success: ((response: JSON) -> ())? = nil, error: ((response: JSON) -> ())? = nil) {
        self.request(method: "get", url: self.rootUrl + "/first", data: data, success: success, error: error)
    }

}
let posts = Posts()

posts.fetch()
// GET "/posts"

posts.fetchFirst()
// GET "/posts/first"

posts.fetchFirst(
    data   : ["foo": "bar"],
    success: {
        response in
        print(response)
    },
    error  : {
        response in
        print(response)
    }
)
// GET "/posts/first?foo=bar"

分支

  • master - 生产分支。克隆或分叉此存储库以获取最新副本。
  • develop - 活动开发分支。拉取请求应指向此分支。

贡献

准备好提交补丁或新功能?提交拉取请求!并且

  • 如果代码有所更改,运行测试并确保一切仍然正常。
  • 为客户功能编写新的测试。
  • 根据需要更新文档注释。
  • 维护现有样式。

联系方式

许可证

请参阅 LICENSE