Pular para o conteúdo principal

GET /api/menages

Obtem a lista paginada de agregados familiares.

Endpoint

GET /api/menages

Headers

HeaderValorObrigatorio
AuthorizationBearer {token}Sim

Parametros de consulta

Paginacao

ParametroTipoPadraoDescricao
pageinteger1Numero da pagina
itemsPerPageinteger30Elementos por pagina (max: 100)

Filtros

ParametroTipoDescricao
regionIRIFiltrar por regiao (/api/regions/1)
secteurIRIFiltrar por setor
communeIRIFiltrar por municipio
localiteIRIFiltrar por localidade
statutstringFiltrar por estado (actif, inactif, en_attente)
searchstringPesquisa textual (codigo, nome do chefe)

Ordenacao

ParametroValoresDescricao
order[createdAt]asc, descOrdenar por data de criacao
order[codeMenage]asc, descOrdenar por codigo do agregado
order[scorePmt]asc, descOrdenar por pontuacao PMT

Resposta de sucesso

Codigo: 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"}
]
}
}

Exemplos

cURL - Lista simples

curl https://sig.ucp-pch.org/api/menages \
-H "Authorization: Bearer TOKEN"

cURL - Com filtros

curl "https://sig.ucp-pch.org/api/menages?region=/api/regions/1&statut=actif&page=2" \
-H "Authorization: Bearer TOKEN"

cURL - Com pesquisa

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();
};

// Utilizacao
const data = await getMenages({
region: '/api/regions/1',
statut: 'actif',
page: 1
});

console.log(`Total: ${data['hydra:totalItems']} agregados familiares`);
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()

# Lista simples
menages = get_menages(token)
print(f"Total: {menages['hydra:totalItems']}")

# Com filtros
menages = get_menages(
token,
region='/api/regions/1',
statut='actif',
page=2
)

Notas

  • Os resultados sao paginados por padrao (30 elementos)
  • A pesquisa textual (search) pesquisa no codigo do agregado e no nome do chefe
  • Os filtros geograficos utilizam IRIs (ex: /api/regions/1)
  • As relacoes (chefMenage, region) sao incluidas na resposta