Мне нужна помощь в создании собственного тела при отправке POST-запроса с Alamofire.
Я отправляю в API продукты.Есть два типа продуктов.Первый тип имеет только количество, второй - разные количества (size_id
) и количества, соответствующие каждому size_id
.
Конечное тело должно выглядеть следующим образом:
"factory_id": "1"
"order_products[0][product_id]": "1"
"order_products[0][size_id]": "2"
"order_products[0][quantity]": "10"
"order_products[1][product_id]": "1"
"order_products[1][size_id]": "3"
"order_products[1][quantity]": "10"
"order_products[1][product_id]": "2"
"order_products[1][size_id]": "2"
"order_products[1][quantity]": "10"
"order_products[2][product_id]": "3"
"order_products[2][quantity]": "10"
Вот то, чего я добился до сих пор:
var createOrderBody = [String: Any]()
let productIds = ["1", "2", "3"]
var body = [String: Any]()
var quantity = ["1" : "10", "2": "10"]
var noIdQuantity = ["10"]
var finalBody = [String: Any]()
func formBody(products: String, factoryId: String, productId: String, size_id: String, quantity: String) -> [String: Any] {
createOrderBody["factory_id"] = factoryId
createOrderBody["order_products[\(products)][product_id]"] = productId
createOrderBody["order_products[\(products)][size_id]"] = size_id
createOrderBody["order_products[\(products)][quantity]"] = quantity
return createOrderBody
}
for (index, value) in productIds.enumerated() {
for (id, size) in quantity {
print(id)
print(size)
body = formBody(products: String(index), factoryId: "1", productId: String(value), size_id: id, quantity: size)
print("Body quantity - ", body)
}
}
И результат, который я получил:
"factory_id": "1",
"order_products[0][product_id]": "1"
"order_products[0][size_id]": "2",
"order_products[0][quantity]": "10",
"order_products[1][product_id]": "2",
"order_products[1][size_id]": "2",
"order_products[1][quantity]": "10",
"order_products[2][product_id]": "3",
"order_products[2][size_id]": "2",
"order_products[2][quantity]": "10",
Как видите, я почти достиг желаемого результата, но проблема в том, что он добавляет только последний элемент словаря quantity
и пропускает другие значения.Кроме того, я не знаю, как добавить количество к продукту, у которого нет size_id
Кроме того, я знаю, что не рекомендуется помещать for in
петлю в другие for in
цикл, но я новичок в разработке, и это лучшая идея, которую я придумал.
Буду признателен за любую помощь в решении этой проблемы, поскольку я боролся с ней почти неделюпрямо сейчас.
Большое спасибо и хороших выходных!