Membros do Agregado Familiar
Endpoints para gerir os membros de um agregado familiar (exceto o chefe de familia).
GET /api/menages/{id}/membres
Obtem a lista de membros de um agregado familiar.
Endpoint
GET /api/menages/{id}/membres
Headers
| Header | Valor | Obrigatorio |
|---|---|---|
| Authorization | Bearer {token} | Sim |
Resposta de sucesso
Codigo: 200 OK
{
"@context": "/api/contexts/MembreMenage",
"@id": "/api/menages/1/membres",
"@type": "hydra:Collection",
"hydra:totalItems": 4,
"hydra:member": [
{
"@id": "/api/membre_menages/1",
"@type": "MembreMenage",
"id": 1,
"nomComplet": "Fatou Diallo",
"lienParente": "epouse",
"sexe": "F",
"age": 38,
"niveauEducation": "secondaire",
"occupationPrincipale": "commerce",
"handicap": false
},
{
"@id": "/api/membre_menages/2",
"@type": "MembreMenage",
"id": 2,
"nomComplet": "Ibrahima Diallo",
"lienParente": "fils",
"sexe": "M",
"age": 15,
"niveauEducation": "primaire",
"occupationPrincipale": "etudiant",
"handicap": false
}
]
}
Exemplo cURL
curl https://sig.ucp-pch.org/api/menages/1/membres \
-H "Authorization: Bearer TOKEN"
POST /api/membre_menages
Adiciona um novo membro a um agregado familiar.
Endpoint
POST /api/membre_menages
Corpo da requisicao
{
"menage": "/api/menages/1",
"nomComplet": "Aminata Diallo",
"lienParente": "fille",
"sexe": "F",
"age": 12,
"niveauEducation": "primaire",
"occupationPrincipale": "etudiant",
"handicap": false
}
Campos
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| menage | IRI | Sim | Referencia ao agregado |
| nomComplet | string | Sim | Nome e apelido |
| lienParente | string | Sim | Relacao com o chefe |
| sexe | string | Nao | "M" ou "F" |
| age | integer | Nao | Idade |
| niveauEducation | string | Nao | Nivel de educacao |
| occupationPrincipale | string | Nao | Atividade |
| handicap | boolean | Nao | Situacao de deficiencia |
Valores possiveis para lienParente
| Valor | Descricao |
|---|---|
| epouse | Esposa/Esposo |
| fils | Filho |
| fille | Filha |
| pere | Pai |
| mere | Mae |
| frere | Irmao |
| soeur | Irma |
| oncle | Tio |
| tante | Tia |
| neveu | Sobrinho |
| niece | Sobrinha |
| cousin | Primo(a) |
| autre | Outro |
Resposta de sucesso
Codigo: 201 Created
{
"@id": "/api/membre_menages/5",
"@type": "MembreMenage",
"id": 5,
"nomComplet": "Aminata Diallo",
"lienParente": "fille",
"sexe": "F",
"age": 12
}
Exemplo cURL
curl -X POST https://sig.ucp-pch.org/api/membre_menages \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"menage": "/api/menages/1",
"nomComplet": "Aminata Diallo",
"lienParente": "fille",
"sexe": "F",
"age": 12
}'
PUT /api/membre_menages/{id}
Modifica um membro existente.
Endpoint
PUT /api/membre_menages/{id}
Corpo da requisicao
{
"age": 13,
"niveauEducation": "college"
}
Resposta de sucesso
Codigo: 200 OK
{
"@id": "/api/membre_menages/5",
"@type": "MembreMenage",
"id": 5,
"nomComplet": "Aminata Diallo",
"age": 13,
"niveauEducation": "college"
}
Exemplo cURL
curl -X PUT https://sig.ucp-pch.org/api/membre_menages/5 \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"age": 13,
"niveauEducation": "college"
}'
DELETE /api/membre_menages/{id}
Elimina um membro do agregado familiar.
Endpoint
DELETE /api/membre_menages/{id}
Resposta de sucesso
Codigo: 204 No Content
Exemplo cURL
curl -X DELETE https://sig.ucp-pch.org/api/membre_menages/5 \
-H "Authorization: Bearer TOKEN"
Exemplos completos
JavaScript
// Obter os membros
const getMembres = async (menageId) => {
const response = await fetch(
`https://sig.ucp-pch.org/api/menages/${menageId}/membres`,
{
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
}
}
);
return response.json();
};
// Adicionar um membro
const addMembre = async (menageId, membre) => {
const response = await fetch(
'https://sig.ucp-pch.org/api/membre_menages',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
menage: `/api/menages/${menageId}`,
...membre
})
}
);
return response.json();
};
// Eliminar um membro
const deleteMembre = async (membreId) => {
await fetch(
`https://sig.ucp-pch.org/api/membre_menages/${membreId}`,
{
method: 'DELETE',
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
}
}
);
};
// Utilizacao
const membres = await getMembres(1);
console.log(`${membres['hydra:totalItems']} membros`);
await addMembre(1, {
nomComplet: 'Nova Crianca',
lienParente: 'fils',
sexe: 'M',
age: 5
});
Python
import requests
class MembresAPI:
def __init__(self, token):
self.token = token
self.base_url = 'https://sig.ucp-pch.org/api'
self.headers = {'Authorization': f'Bearer {token}'}
def get_membres(self, menage_id):
response = requests.get(
f'{self.base_url}/menages/{menage_id}/membres',
headers=self.headers
)
return response.json()
def add_membre(self, menage_id, membre):
membre['menage'] = f'/api/menages/{menage_id}'
response = requests.post(
f'{self.base_url}/membre_menages',
headers={**self.headers, 'Content-Type': 'application/json'},
json=membre
)
return response.json()
def delete_membre(self, membre_id):
requests.delete(
f'{self.base_url}/membre_menages/{membre_id}',
headers=self.headers
)
# Utilizacao
api = MembresAPI(token)
# Listar os membros
membres = api.get_membres(1)
for m in membres['hydra:member']:
print(f"- {m['nomComplet']} ({m['lienParente']})")
# Adicionar um membro
novo = api.add_membre(1, {
'nomComplet': 'Nova Crianca',
'lienParente': 'fils',
'sexe': 'M',
'age': 5
})
print(f"Adicionado: {novo['nomComplet']}")
Notas
- Os membros sao distintos do chefe de familia
- A adicao/eliminacao de membros atualiza o
tailleMenagedo agregado - O campo
lienParentedefine a relacao com o chefe - As modificacoes sao registadas na auditoria