Alamorest 1.4.1

Alamorest 1.4.1

Antti Laitala维护。



 
依赖项
Alamofire~> 5.2.0
PromisesSwift~> 1.2.0
 

Alamorest 1.4.1

  • 作者
  • Antti Laitala

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'

使用

  1. 实现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)
    }
    
}
  1. 创建一个指向API所在位置的Server
let server = Server(baseURL: URL("https://jsonplaceholder.typicode.com")!)
  1. 开始发送请求
let api = JSONPlaceholderAPI(server: server)

api.posts().then {
  print($0) // Prints out the posts.
}.catch {
  print($0) // Prints out the error.
}