Je veux être capable d'ajouter des enregistrements en masse à une base de données nosql dans Vapor 3.
C'est ma structure.
struct Country: Content {
let countryName: String
let timezone: String
let defaultPickupLocation: String
}
J'essaie donc de transmettre un tableau d'objets JSON, mais je ne sais pas comment structurer la route ni comment accéder au tableau pour décoder chaque objet.
J'ai essayé cette voie :
let countryGroup = router.grouped("api/country")
countryGroup.post([Country.self], at:"bulk", use: bulkAddCountries)
avec cette fonction :
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
}
}
}
Alors comment structurer la route et la fonction pour avoir accès à chaque pays ?