GET /api/menages
Récupère la liste paginée des ménages.
Endpoint
GET /api/menages
Headers
| Header | Valeur | Requis |
|---|---|---|
| Authorization | Bearer {token} | Oui |
Paramètres de requête
Pagination
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| page | integer | 1 | Numéro de page |
| itemsPerPage | integer | 30 | Éléments par page (max: 100) |
Filtres
| Paramètre | Type | Description |
|---|---|---|
| region | IRI | Filtrer par région (/api/regions/1) |
| secteur | IRI | Filtrer par secteur |
| commune | IRI | Filtrer par commune |
| localite | IRI | Filtrer par localité |
| statut | string | Filtrer par statut (actif, inactif, en_attente) |
| search | string | Recherche textuelle (code, nom chef) |
Tri
| Paramètre | Valeurs | Description |
|---|---|---|
| order[createdAt] | asc, desc | Trier par date de création |
| order[codeMenage] | asc, desc | Trier par code ménage |
| order[scorePmt] | asc, desc | Trier par score PMT |
Réponse succès
Code: 200 OK
{
"@context": "/api/contexts/Menage",
"@id": "/api/menages",
"@type": "hydra:Collection",
"hydra:totalItems": 1234,
"hydra:member": [
{
"@id": "/api/menages/1",
"@type": "Menage",
"id": 1,
"codeMenage": "MEN-2024-00001",
"tailleMenage": 5,
"scorePmt": "45.67",
"statut": "actif",
"chefMenage": {
"@id": "/api/chef_menages/1",
"nomComplet": "Mamadou Diallo",
"sexe": "M",
"telephone": "771234567"
},
"region": {
"@id": "/api/regions/1",
"nom": "Dakar"
},
"secteur": {
"@id": "/api/secteurs/1",
"nom": "Secteur 1"
},
"commune": {
"@id": "/api/communes/1",
"nom": "Commune 1"
},
"createdAt": "2024-01-15T10:30:00+00:00"
}
],
"hydra:view": {
"@id": "/api/menages?page=1",
"@type": "hydra:PartialCollectionView",
"hydra:first": "/api/menages?page=1",
"hydra:last": "/api/menages?page=42",
"hydra:next": "/api/menages?page=2"
},
"hydra:search": {
"@type": "hydra:IriTemplate",
"hydra:template": "/api/menages{?search,region,secteur,commune,localite,statut}",
"hydra:variableRepresentation": "BasicRepresentation",
"hydra:mapping": [
{"@type": "IriTemplateMapping", "variable": "search", "property": "search"}
]
}
}
Exemples
cURL - Liste simple
curl https://sig.ucp-pch.org/api/menages \
-H "Authorization: Bearer TOKEN"
cURL - Avec filtres
curl "https://sig.ucp-pch.org/api/menages?region=/api/regions/1&statut=actif&page=2" \
-H "Authorization: Bearer TOKEN"
cURL - Avec recherche
curl "https://sig.ucp-pch.org/api/menages?search=Diallo" \
-H "Authorization: Bearer TOKEN"
JavaScript
const getMenages = async (filters = {}) => {
const params = new URLSearchParams();
if (filters.region) params.append('region', filters.region);
if (filters.statut) params.append('statut', filters.statut);
if (filters.search) params.append('search', filters.search);
if (filters.page) params.append('page', filters.page);
const response = await fetch(
`https://sig.ucp-pch.org/api/menages?${params}`,
{
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
}
}
);
return response.json();
};
// Utilisation
const data = await getMenages({
region: '/api/regions/1',
statut: 'actif',
page: 1
});
console.log(`Total: ${data['hydra:totalItems']} ménages`);
data['hydra:member'].forEach(menage => {
console.log(menage.codeMenage, menage.chefMenage.nomComplet);
});
Python
import requests
def get_menages(token, **filters):
response = requests.get(
'https://sig.ucp-pch.org/api/menages',
headers={'Authorization': f'Bearer {token}'},
params=filters
)
return response.json()
# Liste simple
menages = get_menages(token)
print(f"Total: {menages['hydra:totalItems']}")
# Avec filtres
menages = get_menages(
token,
region='/api/regions/1',
statut='actif',
page=2
)
Notes
- Les résultats sont paginés par défaut (30 éléments)
- La recherche textuelle (
search) recherche dans le code ménage et le nom du chef - Les filtres géographiques utilisent des IRI (ex:
/api/regions/1) - Les relations (chefMenage, region) sont incluses dans la réponse