NetworkManager-Moya 0.1.2
示例
要运行示例项目,首先克隆仓库,然后从Example目录运行pod install
。
要求
- iOS 10.0
- Swift 5.0
- Xcode 11
安装
NetworkManager-Moya可通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中:
pod 'NetworkManager-Moya', '~> 0.1.2'
# or
pod 'NetworkManager-Moya/Cache', '~> 0.1.2'
用法
不要使用缓存
NetworkManager.default.provider
.rx
.request(MultiTarget(Api.category))
.asObservable().distinctUntilChanged()
.map(BaseModel<ListData>.self)
.map {$0.data.list}
.subscribe(onNext: { (list) in
self.items = list
self.tableView.reloadData()
}, onError: { (e) in
print(e.localizedDescription)
}).disposed(by: dispose)
或者您可以直接使用TargetType进行请求
Api.category.request()
.map(BaseModel<ListData>.self)
.map { $0.data.list }
.subscribe(onSuccess: { (list) in
self.items = list
self.tableView.reloadData()
}) { (e) in
print(e.localizedDescription)
}.disposed(by: dispose)
使用缓存
NetworkManager.default.provider
.rx
.onCache(MultiTarget(Api.category))
.distinctUntilChanged()
.map(BaseModel<ListData>.self)
.map {$0.data.list}
.subscribe(onNext: { (list) in
self.items = list
self.tableView.reloadData()
}, onError: { (e) in
print(e.localizedDescription)
}).disposed(by: dispose)
/// or
Api.category.cache()
.distinctUntilChanged()
.map(BaseModel<ListData>.self)
.map { $0.data.list }
.subscribe(onNext: { (model) in
print(model.first?.name ?? "")
self.items = model
self.tableView.reloadData()
}, onError: { (e) in
print(e.localizedDescription)
}).disposed(by: dispose)
您也可以自定义插件的使用
let configuration = Configuration()
configuration.plugins.append(LoggingPlugin())
let manager = NetworkManager(configuration: configuration)
manager.provider
.rx
.request(MultiTarget(Api.category))
.asObservable().distinctUntilChanged()
.map(BaseModel<ListData>.self)
.map {$0.data.list}
.subscribe(onNext: { (list) in
self.items = list
self.tableView.reloadData()
}, onError: { (e) in
print(e.localizedDescription)
}).disposed(by: dispose)
作者
许可证
NetworkManager 在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。