[英]How to Pass the URLRequest in Moya
Moya
正在研究Alamofire
并隐藏了它的实现。 因此,没有理由在您的情况下使用Moya。 如果需要,您可以自行使用Alamofire。
这不是将URLRequest传递给Moya
正确方法。 唯一的方法是自行下载源代码并添加所需的功能
看完下面的文章
我可以说以下代码适合您。
import Foundation
import Moya
enum MyServerAPI {
case cameras
case settingsFor(cameraId: String)
// MARK: - User
case createUser(email: String, password: String)
}
// 2:
extension MyServerAPI: TargetType {
// 3:
var baseURL: URL { return URL(string: "https://testing.myserver.com/api/v1")! }
// 4:
var path: String {
switch self {
case .cameras:
return "/cameras"
case .settingsFor(let cameraId):
return "/cameras/\(cameraId)/settings"
case .createUser:
return "/user"
}
}
// 5:
var method: Moya.Method {
switch self {
case .createUsr:
return .post
default:
return .get
}
}
// 6:
var parameters: [String: Any]? {
switch self {
case .createUser(let email, let password):
var parameters = [String: Any]()
parameters["email"] = email
parameters["password"] = password
return parameters
default:
return nil
}
}
// 7:
var parameterEncoding: ParameterEncoding {
return JSONEncoding.default
}
// 8:
var sampleData: Data {
return Data()
}
// 9:
var task: Task {
return .request
}
}
let provider = MoyaProvider<MyServerAPI>()
provider.request(.cameras) { (result) in
switch result {
case .success(let response):
// do something with resoinse
case .failure(let error):
// show error
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.