В моем приложении есть экран, в котором я получаю некоторые поля и сохраняю свой объект Order.Этот объект является моим основным объектом данных.После сохранения мне нужно отправить его на мой бэкэнд через Alamofire POST multipartFormData.Проблема в том, что это базовый объект данных (не кодируемый), и мне нужно отправить тип данных в multipartFormData.Как я могу преобразовать мой объект в данные?Есть ли другой способ сделать это?
Что я сделал:
let order = Order(context: DatabaseController.getContext())
order.orderItem = orderItem
order.product = product
order.value = value
order.date = date
Часть Alamofire:
Alamofire.upload (
multipartFormData: { multipartFormData in
multipartFormData.append(order, withName: "order")
},
to: url,
headers: headers,
encodingCompletion: { encodingResult in
Проблема в том, как поставить мой объект.внутри multipartFormData?Может ли кто-нибудь помочь мне, пожалуйста?
Обновлено:
Хорошо, отправка всего объекта не работает, мой API не принял, поэтому я сделал конкретный JSONтолько с необходимыми полями и повернул его тип данных: (PS: файлы имеют тип данных из изображений, выбранных пользователем, даже из камеры или галереи)
var files = Dictionary<Data, String>()
var jsonFiles = [[String: String]]()
var jsonOrder = [String: Any]()
for file in files {
let dict : [String: String] = [ "orderImageIdLocal": uuidOrderImageIdLocal,
"orderItemAnalysisIdLocal": uuidAnalysisIdLocal,
"urlImageLocal": "\(imageId).jpg"]
jsonFiles.append(dict)
}
jsonOrder = [ "reason": "\(textViewReason)",
"orderImagess": jsonFiles,
"orderAnalysisId": "",
"orderIdLocal": "\(uuidAnaliseIdLocal)",
"orderId": "\(orderId ?? "")",
"typeSolicitation": "\(typeSolicitation)"]
Затем я преобразую его в тип данных, как вы сказали, иотправьте в Alamofire, как указано выше:
let orderData = try? JSONSerialization.data(withJSONObject: jsonOrder, options: .prettyPrinted) {
Моя проблема сейчас заключается в том, что мой api ожидает zip-файл с теми изображениями, которые пользователь взял с камеры или из галереи.Поэтому я пытаюсь использовать ZIPFoundation .Я все еще не знаю, как застегнуть это и послать.Должен ли я застегнуть каждое изображение как тип данных?Затем преобразуйте zip-файл в тип данных, чтобы я мог отправить через multipartFormData.append
?
Я пытался: здесь и здесь