Aller au contenu principal

API Import

L'API Import permet d'importer des données en masse dans le système via des fichiers CSV ou Excel.

Vue d'ensemble

EndpointMéthodeDescription
/api/import/menagesPOSTImport CSV des ménages
/api/import/menages/templateGETTemplate CSV
/api/import/menages/validatePOSTValidation CSV
/api/import/menages/excelPOSTImport Excel des ménages
/api/import/menages/excel/templateGETTemplate Excel
/api/import/menages/excel/validatePOSTValidation Excel
/api/import/menages/excel/validate-detailedPOSTValidation détaillée
/api/import/menages/excel/validation-reportPOSTRapport de validation

Permissions requises

  • registre.import : Import de données
  • registre.import_template : Téléchargement des templates

Import CSV des ménages

Endpoint

POST /api/import/menages

Corps de la requête

Content-Type: multipart/form-data
ChampTypeRequisDescription
filefileOuiFichier CSV

Format CSV attendu

code_menage;nom_complet_chef;sexe_chef;age_chef;telephone_chef;region;secteur;tabanca;milieu;taille_menage;nb_enfants_0_4;nb_enfants_5_14;nb_adultes_15_64;nb_personnes_65_plus;nb_handicapes;nb_actifs_occupes;score_pmt;categorie_pauvrete;latitude;longitude
MEN-001;Mamadou Diallo;M;45;+245955123456;Oio;Farim Centro;Tabanca Nova;rural;5;1;2;2;0;0;2;0.45;pauvre;12.4833;-15.2167

Réponse

{
"success": true,
"message": "3450 ménages importés sur 3500 lignes traitées",
"data": {
"total": 3500,
"imported": 3450,
"skipped": 50,
"errors": [
"Ligne 125: Code ménage manquant",
"Ligne 340: Région 'Unknown' non trouvée"
]
}
}

Template CSV

Endpoint

GET /api/import/menages/template

Réponse

{
"success": true,
"data": {
"headers": [
"code_menage",
"nom_complet_chef",
"sexe_chef",
"age_chef",
"telephone_chef",
"region",
"secteur",
"tabanca",
"milieu",
"taille_menage",
"nb_enfants_0_4",
"nb_enfants_5_14",
"nb_adultes_15_64",
"nb_personnes_65_plus",
"nb_handicapes",
"nb_actifs_occupes",
"score_pmt",
"categorie_pauvrete",
"latitude",
"longitude"
],
"example": [
"MEN-001",
"Mamadou Diallo",
"M",
"45",
"+245955123456",
"Oio",
"Farim Centro",
"Tabanca Nova",
"rural",
"5",
"1",
"2",
"2",
"0",
"0",
"2",
"0.45",
"pauvre",
"12.4833",
"-15.2167"
],
"description": {
"code_menage": "Code unique du ménage (requis)",
"nom_complet_chef": "Nom complet du chef de ménage",
"sexe_chef": "Sexe du chef (M/F)",
"milieu": "Type de milieu (urbain/rural)",
"categorie_pauvrete": "extreme/pauvre/vulnerable/non_pauvre"
}
}
}

Import Excel des ménages

Endpoint

POST /api/import/menages/excel

Corps de la requête

Content-Type: multipart/form-data
ChampTypeRequisDescription
filefileOuiFichier Excel (.xlsx ou .xls)
modestringNonMode d'import: create, update, replace

Modes d'import

ModeDescription
createCrée uniquement les nouveaux ménages, ignore les existants
updateMet à jour les ménages existants, crée les nouveaux
replaceSupprime et recrée les ménages existants

Réponse

{
"success": true,
"message": "3400 ménages importés, 50 mis à jour sur 3500 lignes traitées (50 ignorés)",
"data": {
"total": 3500,
"imported": 3400,
"updated": 50,
"skipped": 50,
"errors": []
}
}

Validation Excel détaillée

Endpoint

POST /api/import/menages/excel/validate-detailed

Réponse

{
"success": false,
"message": "Validation échouée: 5 erreurs, 12 avertissements",
"data": {
"valid": false,
"stats": {
"total_menages": 3500,
"total_lignes": 3502
},
"summary": {
"total_erreurs": 5,
"total_avertissements": 12
},
"erreurs": [
{"ligne": 125, "colonne": "code_menage", "message": "Code ménage manquant"},
{"ligne": 340, "colonne": "region", "message": "Région 'Unknown' non trouvée"}
],
"avertissements": [
{"ligne": 50, "colonne": "telephone_chef", "message": "Format de téléphone non standard"},
{"ligne": 89, "colonne": "score_pmt", "message": "Score PMT hors plage normale (0-1)"}
]
}
}

Télécharger le template Excel

Endpoint

GET /api/import/menages/excel/template

Réponse

Fichier Excel téléchargé directement avec :

  • En-têtes formatés
  • Exemples de données
  • Validation des colonnes
  • Listes déroulantes pour les champs à choix (sexe, milieu, catégorie)