MoyaNetworkClient 3.2.0

MoyaNetworkClient 3.2.0

BarredEwe 维护。



  • 作者
  • BarredEwe

简单的 Swift 请求


CocoaPods Swift5 License Platform
CodeFactor CodeFactor Swift Package Manager


介绍

MoyaNC 是一个抽象之上的抽象(感谢 Moya🖤🖤🖤),允许您不必担心数据映射层,只需使用您的请求。使用 Codable 协议进行 JSON 数据映射,只需遵守此协议并指定类型!此外,您可以轻松简单地缓存任何请求。

示例

要运行示例项目,请先克隆仓库,然后从 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许可证发布。更多信息请参阅许可证。