NetworkManager-Moya 0.1.2

NetworkManager-Moya 0.1.2

WeiRuJian维护。



  • 作者:
  • WeiRuJian

NetworkManager-Moya 0.1.2

CI Status Version License Platform

示例

要运行示例项目,首先克隆仓库,然后从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)

作者

魏汝建,[email protected]

许可证

NetworkManager 在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。