简单的 Swift 请求
介绍
MoyaNC 是一个抽象之上的抽象(感谢 Moya)
示例
要运行示例项目,请先克隆仓库,然后从 Example 目录运行 pod install
。在设置完毕后,使用 MoyaNC 确实非常简单。您可以像这样访问 API
client = DefaultMoyaNC()
// type 'Test' must be Codable
client.request(.zen) { (result: Result<Test>) in
switch result {
case let .success(test):
// do something with the finished object
case let .failure(error):
// do something with error
}
}
这是一个基本的示例。许多 API 请求需要参数。
扩展
Moya 为以下提供了扩展
- Cache:允许您使用灵活的缓存策略来缓存请求数据。需要在 Podfile 中添加
pod 'MoyaNetworkClient/Cache'
。 - FutureResult:使用 Future 来检索并发、异步操作的结果。它是异步、非阻塞代码的关键构建块。需要在 Podfile 中添加
pod 'MoyaNetworkClient/Future'
。
缓存
使用缓存请求的简单示例
API级别缓存的定义
enum TestAPI {
case .zen
}
extension TestAPI: MoyaTargetType, CacheTarget {
var cachePolicy: MoyaCachePolicy {
return .returnCacheDataElseLoad
}
}
请求级别缓存的定义
client = DefaultMoyaNC()
client.request(.zen, cache: .returnCacheDataElseLoad)
FutureResult
这里是一个使用Future可能实现的复杂逻辑的示例
client = DefaultMoyaNC()
// type 'Test' must be Codable
client.request(.zen)
.observeSuccess { (test: Test) in /* do something with the finished object */ }
.observeError { error in /* do something with error */) }
.execute()
安装
CocoaPods
对于MoyaNetworkClient,在你的Podfile中添加以下条目
pod 'MoyaNetworkClient'
然后运行 pod install
。
在任何你想使用Moya的文件中,别忘了用import MoyaNetworkClient
导入框架。
Swift包管理器
要使用Apple的Swift包管理器进行集成,请在您的Package.swift
文件中将以下内容添加为依赖
.package(url: "https://github.com/BarredEwe/MoyaNetworkClient.git", .upToNextMajor(from: "1.0.0"))
然后指定"MoyaNetworkClient"
作为您希望使用MoyaNetworkClient的目标的依赖项。
迁移指南
MoyaNC 3.0:
- 现在请求的验证将通过标准的Moya参数
var validationType: ValidationType
来进行
作者
BarredEwe, [邮箱地址保护,请勿显示]
许可证
MoyaNC采用MIT许可证发布。更多信息请参阅许可证。