RxMoyaTool 是在您使用 RxSwift
的时候帮助你快速的实现网络请求,即开即用。
您只需要关心请求路径、参数、返回模型.
一行代码即可发起网络请求,拿到需要的模型,支持对象或者数组形式,也可以是一个字典。
RxMoyaTool 可以通过 CocoaPods. 来进行安装, 只需将以下行添加到您的 Podfile
:
pod 'RxMoyaTool'
step1: 让 AppDelegate
遵守代理协议 MTMoyaConfProtocol
, 并在入口处进行注册。可根据需要实现对应的方法。
MTMoyaConfig.shared.startWith(self)
step2: 定义自己的 Provider
, 如果有多个模块,可以定义多个 Provider
, 自行根据业务进行拆分即可。
step3: 在需要的地方定义返回模型(遵守 Decodable
协议),选择 Provider
中的 case 发起网络请求,在 Closures
中即可拿到所需要的模型对象。
如果您的数据结构符合 {status: 200, message:"",data: [xxx,xxx]}
这种结构,那么可以在 MTMoyaConfProtocol
的方法中处理 状态码 和 提示信息 ,并且设置 keyPath
(默认是 data
),之后您只需要关心 data 里面的对象即可。
struct LatestNewsModel: Codable {
let date: String?
let stories: [DetailModel]?
let top_stories: [DetailModel]?
struct DetailModel: Codable {
let image_hue: String?
let title: String?
let url: String?
let hint: String?
}
}
exampleAPIProvider.request(.latestNews).mapToModel(LatestNewsModel.self, keyPath: "")
.subscribe(onNext: { result in
print(result.date ?? "")
print(result.stories?.first?.title ?? "")
print(result.stories?.first?.hint ?? "")
}, onError: { error in
if let error = error as? MTMoyaError {
fatalError(error.errorMessage)
}
}).disposed(by: disposeBag)
RxMoyaTool 在 MIT 许可下可用。 有关更多信息,请参阅许可证文件。