测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | 2017年11月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Ryo Ishikawa 维护。
Gryphon 是一个适用于 Swift 的类型安全和便捷的 REST API 套件
```swift
API
.Messages
.getMessage()
.retry(max: 3) // It will retry the API request if that is timeout or failed.
.interval(milliseconds: 500) // Specify the interval time of retry.
.response{ result in
/*
* You can use `result` without nil checking.
* The type of `result` is automatically inferred to your designation type.
* e.g. This case of `result` is a type of `String`
*/
switch result {
case let .response(message):
// Do something
case let .error(error):
// Do something
}
}
首先,创建一个 API 类。
例如。
final class API {
....
}
接下来一步,实现以满足 Requestable
协议的请求。
例如。
extension API {
final class Messages: Requestable {
// required `Requestable`
static var baseURL: String {
return "http://rinov.jp/"
}
// required `Requestable`
static var path: String {
return "Gryphon-Tutorial.php"
}
// Returns message(String) from server or error reason(Error).
class func getMessage() -> Task<String, Error> {
let task = Task<String, Error> { result in
let url = URL(string: baseURL + path)!
var request = URLRequest(url: url)
request.httpMethod = "GET"
let session = URLSession.shared.dataTask(with: request, completionHandler: { (data, response, error) in
guard let data = data,
let json = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [AnyObject],
let message = json?[0]["result"] as? String else {
result(.error(ResponseError.unexceptedResponse(error as AnyObject)))
return
}
result(.response(message))
})
session.resume()
}
return task
}
}
}
然后您可以使用它如下。
API
.Messages
.getMessage()
.retry(max: 3) // It will retry the API request if that is timeout or failed.
.interval(milliseconds: 500) // Specify the interval time of retry.
.response{ result in
switch result {
case let .response(message):
// Do something
case let .error(error):
// Do something
}
}
Swift4
XCode9
在您的 Podfile 中
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'Gryphon', '~> 3.1'
end
并且
$ pod install
Gryphon
在 MIT 许可下发布。