简单的 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

一个使用缓存请求的简单示例

在 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 Package Manager

要使用 Apple 的 Swift 包管理器进行集成,请将以下内容作为依赖项添加到您的 Package.swift

.package(url: "https://github.com/BarredEwe/MoyaNetworkClient.git", .upToNextMajor(from: "1.0.0"))

然后指定 "MoyaNetworkClient" 作为您希望使用 MoyaNetworkClient 的 Target 的依赖项。

迁移指南

MoyaNC 3.0:

作者

BarredEwe, barredEwe@gmail.com

许可证

MoyaNC 在 MIT 许可证下发布。有关更多信息,请参阅许可证。