NetworkMediator 0.1.3

NetworkMediator 0.1.3

Fahad C H 维护。



 
依赖项
SwiftyJSON>= 0
Alamofire>= 0
 

  • Fahad C H

NetworkEngine

NetworkEngine 将帮助您轻松地进行 API 调用,无需编写大量的样板代码。目前它依赖两个非常出色的框架 SwiftyJSONAlamofire,但未来我们将以这种方式重写引擎,以便没有任何硬编码的依赖。

快速开始

在您的 [Podfile]

use_frameworks!

target "Change Me!" do
  pod "NetworkMediator"
end

NetworkEngine 支持 Xcode 8.3、9.0、9.1、9.2 和 9.3;Swift 3.1、3.2、3.3、4.0 和 4.1。

入门

创建一个继承自 JSONOperation 的 Operation,并提供一个符合 Codable 协议的 ResponseModel。

public class StartWarsOperation: JSONOperation<StarWarsCharacterResponseModel> {
    public override init() {
        super.init()
        self.request = Request(method: .get, endpoint: "/people", params: nil, fields: nil, body: nil)
    }
}

响应模型将如下所示

public struct StarWarsCharacterResponseModel:Codable {
    let next: String
    let characters: [JediProfile]
    
    private enum CodingKeys: String,CodingKey {
        case next
        case characters = "results"
    }
}

最后,创建 ServiceConfig 和 Service 以执行 API 调用。

//You could configure your own service instance with different config setup.
let serviceConfig = ServiceConfig(name: "StarWars", base: "https://swapi.co/api")
let service = Service(configuration: serviceConfig!)
StartWarsOperation().execute(in: service) { [weak self] (startWarsResponse, resultType) in
    self?.jdProfiles = startWarsResponse?.characters
    DispatchQueue.main.async {
         completion(true)
    }
}

更多详细信息,请查看 示例