NetworkEngine
NetworkEngine 将帮助您轻松地进行 API 调用,无需编写大量的样板代码。目前它依赖两个非常出色的框架 SwiftyJSON 和 Alamofire,但未来我们将以这种方式重写引擎,以便没有任何硬编码的依赖。
快速开始
在您的 [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)
}
}
更多详细信息,请查看 示例