- Вам нужна модель для объекта, который вы хотите опубликовать
struct User: Codable {
private enum CodingKeys: String, CodingKey {
case userID = "UserId"
case customerID = "CustomerId"
case productCode = "ProductCode"
case quantity = "Quantity"
}
let userID: String
let customerID: String
let productCode: String
let quantity: String
}
Вам необходимо создать сервис
enum MyService {
case postUsers(users: [User])
}
Вам необходимо, чтобы ваша служба соответствовала протоколу
TargetType
extension MyService: TargetType {
var baseURL: URL { return URL(string: "https://test.com")! }
var path: String {
switch self {
case .postUsers(let users):
return "/users"
}
}
var method: Moya.Method {
switch self {
case .postUsers:
return .post
}
}
var task: Task {
switch self {
case .postUsers(let posts):
return .requestJSONEncodable(posts)
}
}
var sampleData: Data {
switch self {
case .postUsers:
return Data() // if you don't need mocking
}
}
var headers: [String: String]? {
// probably the same for all requests?
return ["Content-type": "application/json; charset=UTF-8"]
}
}
Наконец, вы можете выполнить сетевой запрос POST.
let usersToPost: [User] = // fill this array
let provider = MoyaProvider<MyService>()
provider.request(.postUsers(users: usersToPost) { result in
// do something with the result (read on for more details)
}
Для получения дополнительной информации см. Документацию .