Format de réponse
JSON uniforme
Authentification
Aucune requise
Protocole
HTTP REST / GET
Interface admin
Modèle de données
Chaque correspondance est un enregistrement de la table matchings.
| Champ | Type | Requis | Description |
|---|---|---|---|
sidainfo_code |
string | Oui | Identifiant unique de la FOSA dans SIDAInfo |
dhis2_id |
string | Oui | UID de l'unité organisationnelle dans DHIS2 |
nom_formation |
string | Non | Nom de la formation sanitaire |
description |
string | Non | Notes complémentaires |
is_active |
boolean | Non | Indique si la correspondance est en vigueur (défaut : true) |
/matching/by-code/{sidainfo_code}
Retourne l'identifiant DHIS2 correspondant à un code SIDAInfo. Point d'entrée principal pour OpenFn.
Paramètre de chemin
sidainfo_code
Le code SIDAInfo de la FOSA (ex : FOS-12345)
200 — Succès
{
"success": true,
"message": "Correspondance trouvée",
"data": {
"sidainfo_code": "FOS-12345",
"dhis2_id": "AbCdEfGhIj1",
"nom_formation": "CS Rohero"
}
}
404 — Non trouvé
{
"success": false,
"message": "Code SIDAInfo non trouvé",
"data": null
}
Exemples d'utilisation
Autres endpoints disponibles
Ces routes peuvent être activées dans routes/web.php selon les besoins.
/api/matchings
Lister toutes les correspondances (paginées)
Paramètres : per_page (défaut 50), search
/api/matchings
Créer ou mettre à jour une correspondance
Corps JSON : sidainfo_code*, dhis2_id*, nom_formation, description
/api/matchings/{id}
Mettre à jour une correspondance existante
Corps JSON : sidainfo_code*, dhis2_id*, nom_formation, description, is_active
/api/matchings/{id}
Supprimer une correspondance
Suppression douce (soft delete)
/api/matchings/sync
Synchronisation massive (batch)
Corps JSON : { "matchings": [{ sidainfo_code, dhis2_id, ... }] }
/matchings/export
Exporter toutes les correspondances en CSV
Téléchargement direct, encodage UTF-8 BOM
/matchings/import
Importer des correspondances depuis un CSV
Fichier CSV avec colonnes : sidainfo_code, dhis2_id, nom_formation (optionnel)
Synchronisation massive (sync)
Utile pour initialiser ou resynchroniser l'ensemble des correspondances en un seul appel.
Corps de la requête
{
"matchings": [
{
"sidainfo_code": "FOS-001",
"dhis2_id": "AbCdEfGhIj1",
"nom_formation": "CS Rohero"
},
{
"sidainfo_code": "FOS-002",
"dhis2_id": "KlMnOpQrSt2",
"nom_formation": "HP Kamenge"
}
]
}
Réponse 200
{
"success": true,
"message": "Synchronisation terminée",
"synced_count": 2,
"errors_count": 0,
"errors": []
}
Import CSV
Importer des correspondances en masse depuis un fichier CSV via l'interface ou l'API.
Format du fichier CSV
sidainfo_code,dhis2_id,nom_formation,description FOS-001,AbCdEfGhIj1,CS Rohero,Centre de santé FOS-002,KlMnOpQrSt2,HP Kamenge,Hôpital provincial
Colonnes obligatoires : sidainfo_code, dhis2_id.
Requête cURL
curl -X POST \ "https://votre-domaine.bi/matchings/import" \ -H "Accept: application/json" \ -F "file=@correspondances.csv"
Test rapide
Entrez un code SIDAInfo pour tester l'API directement.
Codes de retour HTTP
200
Correspondance trouvée
201
Créée avec succès (POST)
404
Code ou ID introuvable
422
Données invalides
500
Erreur serveur interne
Structure de réponse
Toutes les réponses JSON partagent la même enveloppe.
{
"success": boolean,
"message": string,
"data": object | null
}