CompartilhamentoController
Gerencia o compartilhamento de uma safra com outra API Key. Todas as requisições exigem X-API-ACCESS-KEY e X-API-SECRET-KEY.
POST /compartilhamento
Cria o compartilhamento. Informe safraId ou safraCodigo para localizar a safra e accessKey para identificar a API Key destinatária. A safra precisa pertencer à API Key autenticada.
curl --request POST \
--url https://<url>/compartilhamento \
--header 'X-API-ACCESS-KEY: <chave_de_acesso>' \
--header 'X-API-SECRET-KEY: <chave_de_seguranca>' \
--header 'Content-Type: application/json' \
--data '{
"safraId": "<id_safra>",
"safraCodigo": "<codigo_safra>",
"ativo": true,
"faseId": "<id_fase_opcional>",
"accessKey": "<access_key_destinataria>"
}'
O controller retorna 200 OK sem corpo. A API Key destinatária é armazenada no compartilhamento; o secretKey nunca é serializado nas respostas.
GET /compartilhamento
Lista os compartilhamentos em uma página. Parâmetros opcionais: page (iniciando em zero), size (padrão 10) e sort (padrão safraId).
{
"content": [
{
"id": 1,
"safraId": "<id_safra>",
"ativo": true,
"faseId": "<id_fase>",
"createdAt": "2026-01-15T10:00:00",
"apiKey": {
"id": 2,
"accessKey": "<access_key_destinataria>",
"perfil": "USER",
"description": "<descricao>",
"permissions": "<permissoes>",
"active": true,
"nome": "<nome>",
"registro": "<registro>",
"eori": "<eori>",
"email": "<email>",
"telefone": "<telefone>",
"endereco": "<endereco>",
"cidade": "<cidade>",
"estado": "<estado>",
"cep": "<cep>",
"pais": "<pais>"
}
}
],
"pageable": {},
"totalElements": 1,
"totalPages": 1,
"size": 10,
"number": 0,
"first": true,
"last": true,
"numberOfElements": 1,
"empty": false
}
PUT /compartilhamento
Atualiza somente o status do compartilhamento.
{
"id": 1,
"ativo": false
}
id é obrigatório. O retorno é 200 OK sem corpo.
DELETE /compartilhamento/{id}
Exclui o compartilhamento pelo ID numérico (Long) e retorna 200 OK sem corpo.
Erros
Falhas de negócio retornam 400 Bad Request, por exemplo quando a safra não existe, não pertence à API Key autenticada ou a API Key destinatária não é encontrada.