Я хочу иметь возможность массового добавления записей в базу данных nosql в Vapor 3.
Это моя структура.
struct Country: Content {
let countryName: String
let timezone: String
let defaultPickupLocation: String
}
Итак, я пытаюсь передать массив объектов JSON, но я не уверен, как структурировать маршрут или как получить доступ к массиву для декодирования каждого из них.
Я пробовал этот маршрут:
let countryGroup = router.grouped("api/country")
countryGroup.post([Country.self], at:"bulk", use: bulkAddCountries)
с этой функцией:
func bulkAddCountries(req: Request, countries:[Country]) throws -> Future<String> {
for country in countries{
return try req.content.decode(Country.self).map(to: String.self) { countries in
//creates a JSON encoder to encode the JSON data
let encoder = JSONEncoder()
let countryData:Data
do{
countryData = try encoder.encode(country) // encode the data
} catch {
return "Error. Data in the wrong format."
}
// code to save data
}
}
}
Итак, как мне структурировать маршрут и функцию, чтобы получить доступ к каждой стране?