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
| Endpoint | Méthode | Description |
|---|---|---|
/api/import/menages | POST | Import CSV des ménages |
/api/import/menages/template | GET | Template CSV |
/api/import/menages/validate | POST | Validation CSV |
/api/import/menages/excel | POST | Import Excel des ménages |
/api/import/menages/excel/template | GET | Template Excel |
/api/import/menages/excel/validate | POST | Validation Excel |
/api/import/menages/excel/validate-detailed | POST | Validation détaillée |
/api/import/menages/excel/validation-report | POST | Rapport de validation |
Permissions requises
registre.import: Import de donnéesregistre.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
| Champ | Type | Requis | Description |
|---|---|---|---|
file | file | Oui | Fichier 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
| Champ | Type | Requis | Description |
|---|---|---|---|
file | file | Oui | Fichier Excel (.xlsx ou .xls) |
mode | string | Non | Mode d'import: create, update, replace |
Modes d'import
| Mode | Description |
|---|---|
create | Crée uniquement les nouveaux ménages, ignore les existants |
update | Met à jour les ménages existants, crée les nouveaux |
replace | Supprime 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)