寿司 1.2.0

寿司 1.2.0

Andrei 维护。



寿司 1.2.0

  • Andrei

寿司是一个轻量级的HTTP网络库,具有内置的JSON解码功能——用Swift编写。

安装

Cocoapods

在您的 Podfile 文件中添加以下...

pod 'Sushi' '~> 1.2.0'

Carthage

未来版本将添加对Carthage的支持

指南/文档

寿司的设计围绕一个特定的目标 - JSON解码。

步骤 1:建模你的数据

在这个例子中,UserModel 是我们在创建和发送请求后期待接收的数据模型。所有模型都应该遵循 Codable 协议。

struct UserModel: Codable {
    let userId: Int
    let id: Int
    let title: String
    let completed: Bool
}

步骤 2:创建端点

端点是网络端点的表示,其中包含以下信息:

Model - 从请求响应中表示的数据类型。《httpMethod》 - HTTP 方法:GET,POST(即将到来其他方法) url - 包含打开请求信息的字符串

import Sushi

struct UserEndpoint: Endpoint {
    typealias Model = UserModel

    var httpMethod: HTTPMethod = .GET
    var urlRequest: String = "https://jsonplaceholder.typicode.com/todos/1"
}

步骤 3:调用请求

最后,我们创建了一个 SushiUserEndpoint 的实例。然后根据端点提供的信息创建请求。

Sushi 会异步处理请求,一旦请求完成,将调用 successfailure 回调。

import Sushi

var endpoint = UserEndpoint()
var sushi: Sushi = Sushi()

sushi.request(endpoint: endpoint, success: { (data) in
    print("\(data)") // Data conforms to UserModel and Swift can now confidently infer properties from it
    
    print("\(data.userId))      // userId: 0
    print("\(data.id))          // id: 1234
    print("\(data.title))       // title: "Title received"
    print("\(data.completed))   // completed: false
})