Alamorest
Alamorest提供了使用Alamofire和Promises与RESTful服务接口的简便方法。
提供对JSON和(可选)Protobuf请求的原生支持。
要求
- iOS 10.0+
- Swift 5.0+
依赖项
安装
CocoaPods
CocoaPods是Cocoa项目的依赖管理器。有关使用和安装说明,请访问他们的网站。要使用CocoaPods将Alamorest集成到您的Xcode项目中,请在Podfile中指定它
pod 'Alamorest'
为了支持Protobuf,请在您的Podfile中包含以下子规范:
pod 'Alamorest/Protobuf'
使用
- 实现API(基于结构的approach更佳)
struct JSONPlaceholderAPI {
let server: Server
init(baseURL: String) {
server = Server(baseURL: URL(string: baseURL)!)
}
struct Post: Decodable {
let body: String
let id: Int
let title: String
let userId: Int
}
func posts() -> Promise<[Post]> {
return server.json(path: "posts", method: .get)
}
func post(id: Int) -> Promise<Post> {
return server.json(path: "posts/\(id)", method: .get)
}
func createPost(title: String, body: String, userId: Int) -> Promise<Post> {
struct Payload: Encodable {
let title: String
let body: String
let userId: Int
}
let object = Payload(title: title, body: body, userId: userId)
return server.json(object: object, path: "posts", method: .post)
}
}
- 创建一个指向API所在位置的
Server
let server = Server(baseURL: URL("https://jsonplaceholder.typicode.com")!)
- 开始发送请求
let api = JSONPlaceholderAPI(server: server)
api.posts().then {
print($0) // Prints out the posts.
}.catch {
print($0) // Prints out the error.
}