IORequestable
使用 IORequestable 在 Swift 中以简单的方式定义和执行您的 Web API 请求。
这是什么?
IORequestable 通过封装可编码输入和输出类型以及基于 Moya 抽象层的 URL 请求规范,提供了一个干净、简单的方式来创建 Web API 请求。
API = 可编码输入 + 可解码输出 + URL 及其他选项
用法
指定一个共享基URL
import IORequestable
import Moya
protocol SomeIORequestable: MoyaIORequestable {}
extension SomeIORequestable {
var baseURL: URL {
return URL(string: "https://example.com")!
}
}
定义一个API
struct GetBestPerson: SomeIORequestable {
var spec = Spec(.get, "/api/people/best",
inputEncoding: .urlParameter)
struct Input: Encodable {
let trait: String
let gender: String?
}
struct Output: Decodable {
let name: String
let height: Double?
let weight: Double?
}
}
就这样!您已经创建了一个可执行的API。让我们运行它并试一试。
执行一个API请求
GetBestPerson(.init(trait: "kindness",
gender: "all"))
.execute() { result in
switch result {
case .success(let output):
// ...
case .failure(let error):
// ...
}
}
其他技巧
技巧#1
要定义路径占位符,请在路径中使用{ },并对输入参数使用@PathOnly。
struct GetUserInfo: SomeIORequestable {
var spec = Spec(.get, "/api/books/{bookID}") // Use { } for placeholder
struct Input: Encodable {
@PathOnly var bookID: String // Use @PathOnly
var otherParameter: Int
}
struct Output = ...
}
提示 #2
要将现有模型用作输入或输出,请使用别名。
struct GetUserInfo: SomeIORequestable {
var spec = ...
typealias Input = String // Define input as String
typealias Output = Person // Use Person as Output,
// where Person conforms to Decodable.
}
示例项目
要运行示例项目,请首先克隆仓库,然后从 Example 目录运行 pod install
命令。
需求
安装
IORequestable 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中
pod 'IORequestable'
作者
royhcj, [email protected]
许可证
IORequestable 采用 MIT 许可证发布。有关更多信息,请参阅 LICENSE 文件。