Documentation API
API REST moderne pour l'intégration de services médicaux
Vue d'ensemble
L'API mInfoSanté est une interface RESTful sécurisée permettant l'intégration de services médicaux. Toutes les réponses sont au format JSON et utilisent des codes de statut HTTP standards.
https://apiminfosante.cous.cloud/api
Authentification
L'API utilise l'authentification par token Bearer. Obtenez d'abord un token, puis incluez-le dans l'en-tête Authorization de chaque requête.
Génère un nouveau token d'authentification
{
"username": "your_username",
"password": "your_password",
"token_name": "Mon Token API",
"expires_in": 30
}
{
"success": true,
"message": "Token created successfully",
"data": {
"token": "test_abc123def456...",
"expires": "2025-11-17T12:34:56+00:00",
"user": {
"id": 1,
"username": "your_username",
"email": "user@example.com"
}
}
}
Endpoints Disponibles
Liste complète des endpoints de l'API avec leurs méthodes HTTP et descriptions.
Administration
Liste des tokens en attente de validation
Authorization: Bearer YOUR_TOKEN
Liste de tous les tokens
Valider un token en attente
Rejeter un token
Liste de tous les utilisateurs
Collecte de Données FVR
Endpoints pour la collecte des données de surveillance de la Fièvre de la Vallée du Rift (FVR)
Collecte des cas humains de FVR via RapidPro
?token=YOUR_API_TOKEN
&date_rapport=2024-01-15
&auteur=Dr. Diallo
®ion=Senegal > Matam Region
&district_sanitaire=Matam
&cas_suspects=5
&cas_confirmes=2
&deces=0
&lat=15.4916
&lon=-13.17627
&gps_accuracy=10
{
"success": true,
"message": "Données enregistrées avec succès",
"action": "CREATED",
"data": {
"id": 123,
"date_rapport": "2024-01-15",
"auteur": "Dr. Diallo",
"region": "Matam",
"district_sanitaire": "Matam",
"gps_latitude": "15.4916",
"gps_longitude": "-13.17627",
"gps_accuracy": "10"
}
}
Collecte des cas animaux de FVR via RapidPro
?token=YOUR_API_TOKEN
&date_rapport=2024-01-15
&auteur=Dr. Ba
®ion=Senegal > Matam Region
&district_sanitaire=Matam
&nom_site=Elevage Village
&animaux_malades=12
&animaux_morts=3
&lat=15.4916
&lon=-13.17627
&gps_accuracy=10
{
"success": true,
"message": "Données animales enregistrées avec succès",
"action": "CREATED",
"data": {
"id": 124,
"date_rapport": "2024-01-15",
"auteur": "Dr. Ba",
"region": "Matam",
"district_sanitaire": "Matam",
"nom_site": "Elevage Village",
"gps_latitude": "15.4916",
"gps_longitude": "-13.17627",
"gps_accuracy": "10"
}
}
Fonctionnalités des endpoints FVR
Exemples de Code
Exemples d'intégration dans différents langages de programmation.
cURL
curl -X POST https://apiminfosante.cous.cloud/api/auth \
-H "Content-Type: application/json" \
-d '{
"username": "admin",
"password": "password",
"token_name": "Mon Token"
}'
JavaScript (Fetch)
const response = await fetch('https://apiminfosante.cous.cloud/api/auth', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
username: 'admin',
password: 'password',
token_name: 'Mon Token'
})
});
const data = await response.json();
const token = data.data.token;
// Utiliser le token pour d'autres requêtes
fetch('https://apiminfosante.cous.cloud/api/admin/users', {
headers: { 'Authorization': `Bearer ${token}` }
});
PHP
<?php
$ch = curl_init('https://apiminfosante.cous.cloud/api/auth');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'username' => 'admin',
'password' => 'password',
'token_name' => 'Mon Token PHP'
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
$token = $result['data']['token'];
?>
Python
import requests
url = 'https://apiminfosante.cous.cloud/api/auth'
data = {
'username': 'admin',
'password': 'password',
'token_name': 'Mon Token Python'
}
response = requests.post(url, json=data)
result = response.json()
if result['success']:
token = result['data']['token']
# Utiliser le token
headers = {'Authorization': f'Bearer {token}'}
users = requests.get(
'https://apiminfosante.cous.cloud/api/admin/users',
headers=headers
)
Exemples FVR (Fièvre de la Vallée du Rift)
Collecte de données humaines
curl -X GET "https://apiminfosante.cous.cloud/s/nouveau?token=YOUR_TOKEN&date_rapport=2024-01-15&auteur=Dr.%20Diallo®ion=Senegal%20%3E%20Matam%20Region&district_sanitaire=Matam&cas_suspects=5&cas_confirmes=2&deces=0&lat=15.4916&lon=-13.17627&gps_accuracy=10"
const fvrHumanData = {
token: 'YOUR_API_TOKEN',
date_rapport: '2024-01-15',
auteur: 'Dr. Diallo',
region: 'Senegal > Matam Region',
district_sanitaire: 'Matam',
cas_suspects: 5,
cas_confirmes: 2,
deces: 0,
lat: 15.4916,
lon: -13.17627,
gps_accuracy: 10
};
const queryString = new URLSearchParams(fvrHumanData).toString();
const response = await fetch(`https://apiminfosante.cous.cloud/s/nouveau?${queryString}`);
const result = await response.json();
console.log('FVR Human Data:', result);
Collecte de données animales
<?php
$fvrAnimalData = [
'token' => 'YOUR_API_TOKEN',
'date_rapport' => '2024-01-15',
'auteur' => 'Dr. Ba',
'region' => 'Senegal > Matam Region',
'district_sanitaire' => 'Matam',
'nom_site' => 'Elevage Village',
'animaux_malades' => 12,
'animaux_morts' => 3,
'lat' => 15.4916,
'lon' => -13.17627,
'gps_accuracy' => 10
];
$url = 'https://apiminfosante.cous.cloud/s/animal?' . http_build_query($fvrAnimalData);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPGET, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
echo "FVR Animal Data: " . json_encode($result, JSON_PRETTY_PRINT);
?>
import requests
from datetime import datetime
# Données FVR animales
fvr_animal_data = {
'token': 'YOUR_API_TOKEN',
'date_rapport': datetime.now().strftime('%Y-%m-%d'),
'auteur': 'Dr. Ba',
'region': 'Senegal > Matam Region',
'district_sanitaire': 'Matam',
'nom_site': 'Elevage Village',
'animaux_malades': 12,
'animaux_morts': 3,
'lat': 15.4916,
'lon': -13.17627,
'gps_accuracy': 10
}
# Envoi de la requête
response = requests.get('https://apiminfosante.cous.cloud/s/animal', params=fvr_animal_data)
result = response.json()
if result['success']:
print(f"✅ Données enregistrées: {result['message']}")
print(f"Action: {result['action']}")
print(f"ID: {result['data']['id']}")
else:
print(f"❌ Erreur: {result['message']}")