寿司是一个轻量级的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:调用请求
最后,我们创建了一个 Sushi
和 UserEndpoint
的实例。然后根据端点提供的信息创建请求。
Sushi 会异步处理请求,一旦请求完成,将调用 success
或 failure
回调。
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
})