Setores
Os setores são o segundo nível da hierarquia geográfica, ligados a um município.
Hierarquia geográfica
Região → Setor → Município → Localidade
^^^^^^
GET /api/secteurs
Obtém a lista dos setores.
Endpoint
GET /api/secteurs
Headers
| Header | Valor | Obrigatório |
|---|---|---|
| Authorization | Bearer {token} | Sim |
Parâmetros de filtro
| Parâmetro | Tipo | Descrição |
|---|---|---|
| commune.id | UUID | Filtrar por município |
| commune.departement.id | UUID | Filtrar por departamento |
| commune.departement.region.id | UUID | Filtrar por região |
Resposta de sucesso
Código: 200 OK
{
"@context": "/api/contexts/Secteur",
"@id": "/api/secteurs",
"@type": "hydra:Collection",
"hydra:totalItems": 156,
"hydra:member": [
{
"@id": "/api/secteurs/aa0e8400-e29b-41d4-a716-446655440001",
"@type": "Secteur",
"id": "aa0e8400-e29b-41d4-a716-446655440001",
"nom": "Secteur 1",
"code": "S01",
"commune": {
"@id": "/api/communes/bb0e8400-e29b-41d4-a716-446655440001",
"nom": "Commune 1"
}
}
],
"hydra:view": {
"@id": "/api/secteurs?page=1",
"hydra:first": "/api/secteurs?page=1",
"hydra:last": "/api/secteurs?page=6"
}
}
GET /api/secteurs/{id}
Obtém um setor pelo seu identificador.
Endpoint
GET /api/secteurs/{id}
Resposta de sucesso
Código: 200 OK
{
"@context": "/api/contexts/Secteur",
"@id": "/api/secteurs/aa0e8400-e29b-41d4-a716-446655440001",
"@type": "Secteur",
"id": "aa0e8400-e29b-41d4-a716-446655440001",
"nom": "Secteur 1",
"code": "S01",
"commune": {
"@id": "/api/communes/bb0e8400-e29b-41d4-a716-446655440001",
"@type": "Commune",
"nom": "Commune 1",
"code": "COM01"
}
}
POST /api/secteurs
Cria um novo setor (apenas ADMIN).
Endpoint
POST /api/secteurs
Corpo do pedido
{
"nom": "Nouveau Secteur",
"code": "NS01",
"commune": "/api/communes/bb0e8400-e29b-41d4-a716-446655440001"
}
Resposta de sucesso
Código: 201 Created
PUT /api/secteurs/{id}
Modifica um setor (apenas ADMIN).
Endpoint
PUT /api/secteurs/{id}
Corpo do pedido
{
"nom": "Secteur Modifié"
}
DELETE /api/secteurs/{id}
Elimina um setor (apenas ADMIN).
Endpoint
DELETE /api/secteurs/{id}
Resposta de sucesso
Código: 204 No Content
Exemplos
cURL - Lista com filtro
# Setores de um município
curl "https://sig.ucp-pch.org/api/secteurs?commune.id=bb0e8400-e29b-41d4-a716-446655440001" \
-H "Authorization: Bearer TOKEN"
# Setores de uma região
curl "https://sig.ucp-pch.org/api/secteurs?commune.departement.region.id=990e8400-e29b-41d4-a716-446655440001" \
-H "Authorization: Bearer TOKEN"
JavaScript
const getSecteurs = async (filters = {}) => {
const params = new URLSearchParams();
if (filters.communeId) {
params.append('commune.id', filters.communeId);
}
if (filters.regionId) {
params.append('commune.departement.region.id', filters.regionId);
}
const response = await fetch(
`https://sig.ucp-pch.org/api/secteurs?${params}`,
{
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
}
}
);
return response.json();
};
// Setores de um município específico
const secteurs = await getSecteurs({
communeId: 'bb0e8400-e29b-41d4-a716-446655440001'
});
secteurs['hydra:member'].forEach(secteur => {
console.log(`${secteur.nom} (${secteur.commune.nom})`);
});
Python
import requests
def get_secteurs(token, **filters):
params = {}
if 'commune_id' in filters:
params['commune.id'] = filters['commune_id']
if 'region_id' in filters:
params['commune.departement.region.id'] = filters['region_id']
response = requests.get(
'https://sig.ucp-pch.org/api/secteurs',
headers={'Authorization': f'Bearer {token}'},
params=params
)
return response.json()
# Setores de um município
secteurs = get_secteurs(token, commune_id='bb0e8400-...')
for s in secteurs['hydra:member']:
print(f"- {s['nom']}")
Campos
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| id | UUID | - | Identificador único |
| nom | string | Sim | Nome do setor |
| code | string | Não | Código do setor |
| commune | IRI | Sim | Referência ao município |
Notas
- Os setores contêm localidades
- O filtro por região utiliza o caminho
commune.departement.region.id - A criação/modificação/eliminação requer o papel ADMIN