测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2016年10月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Juraj Hilje 维护。
依赖 | |
Alamofire | ~> 4.0.1 |
SwiftyJSON | ~> 3.1.0 |
HTTPStatusCodes | ~> 3.1.0 |
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)
})
model.save(data: ["foo": "bar"])
// POST "/posts" {foo: bar}
默认参数
model.fetch(data: ["foo": "bar"])
// GET "/posts?foo=bar"
默认参数
model.data["id"] = 1
model.save(data: ["foo": "bar"])
// PUT "/posts/1" {foo: bar}
默认参数
model.destroy()
// DELETE "/posts/1"
默认参数
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"
默认参数
从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"
准备好提交补丁或新功能?提交拉取请求!并且 请
请参阅 LICENSE。