BaseNetworkKit 1.1.2

BaseNetworkKit 1.1.2

John Lima维护。



BaseNetworkKit

GitHub release Build Status CocoaPods GitHub repo size License Platform Donate

BaseNetworkKit 是在Swift中创建您的网络层的最简单方式。

❗️要求

  • iOS 9.3+
  • Swift 5.0+

安装

Swift Package Manager

BaseNetworkKit 可通过 SPM 获得支持。要安装,请按照以下步骤操作

Open Xcode project > File > Swift Packages > Add Package Dependecy

之后,将URL放在字段中: https://github.com/thejohnlima/BaseNetworkKit.git

CocoaPods

BaseNetworkKit 可通过 CocoaPods 获取。要安装,只需将以下行添加到您的Podfile,然后运行 pod install

pod 'BaseNetworkKit'

🎓如何使用

将库导入到您的网络层

import BaseNetworkKit

设置请求

enum RequesterAPI {
  // Body can be a model object conform to NKCodable
  case listOfItems(Body)
}

extension RequesterAPI: NKFlowTarget {
  // Set your api
  var baseURL: URL {
    return URL(stringValue: "https://your.api")
  }

  // Set your endpoints
  var path: String {
    switch self {
    case .listOfItems:
      return "endpoint1"
    }
  }

  // Set http methods
  var method: NKHTTPMethods {
    return .get
  }

  // Set headers if needed
  var headers: NKCommon.HTTPHeader? {
    return [
      "key1": "value2",
      "key2": "value2"
    ]
  }

  // Here you can set the tasks, like parameters
  var task: NKTask {
    switch self {
    case .listOfItems(let body):
      guard let params = body.dictionary(), !params.isEmpty else {
        return .requestPlain
      }
      return .requestParameters(params, encoding: .queryString)
    }
  }

  // You want to see the request logs, set the environment to develop
  var environment: NKEnvironment {
    return .develop
  }
}

然后,创建一个请求函数

class Service: NKBaseService<RequesterAPI> {
  func fetchItems(page: Int, limit: Int, completion: @escaping NKCommon.ResultType<Model>) {
    let requestModel = ModelRequest(offset: "\(page)", limit: "\(limit)")
    fetch(.listOfItems(requestModel), dataType: Model.self, completion: completion)
  }
}

如果您需要更多示例,请打开 示例项目

🙋🏻‍ Communication

  • 如果您发现了bug,请提交一个issue。
  • 如果您有功能请求,请提交一个issue。
  • 如果您想贡献,请提交一个pull request. 👨🏻‍💻

📜许可

BaseNetworkKit 采用 MIT 许可证。有关更多信息,请参阅LICENSE 文件。