Ir para o conteúdo

Cadastrar Animal

POST /integracao/animal

📌 O que o endpoint faz

Este endpoint é responsável por executar a operação de Cadastrar Animal. Ele trafega dados diretamente na base do SISBOV, permitindo a gestão correta das informações via integração de sistemas. Os dados são processados e validados mediante as rigorosas regras exigidas pelo MAPA para as certificadoras.


🧠 Lógica de Negócio (PORTUGOL)

A rotina interna do microserviço e sua cadeia de responsabilidades é definida simplificadamente pelos seguintes passos estruturados:

FUNÇÃO `CadastrarAnimal`(payload):
  1. Validar campos obrigatórios do payload recebido.
  2. Verificar regras de unicidade e vínculos (ex: verificar se as entidades relacionadas como Produtor e Propriedade existem).
  3. Aplicar as regras de permissão (Perfil Certificadora só acessa seus dados).
  4. Instanciar a nova entidade com status ativo ou inicial.
  5. SALVAR no banco de dados.
  6. RETORNAR código 201 com o ID gerado.
FIM_FUNÇÃO

|---|---| | idMorte | String | 💡 Opcional | | idLote | String | 💡 Opcional | | dataEntradaPropriedadeCertificada | LocalDate | 💡 Opcional | | dataIdentificacao | LocalDate | 💡 Opcional | | dataAbate | LocalDate | 💡 Opcional | | sexo | String | 💡 Opcional | | tipoIdentificacao | String | 💡 Opcional | | numero | String | 💡 Opcional | | ERASPropriedadeLocalizacao | String | 💡 Opcional | | ERASPropriedadeResponsavel | String | 💡 Opcional | | identificadorReceitaProdutorCadastramento | String | 💡 Opcional | | registroProvisorio | String | 💡 Opcional | | idNumeracao | String | 💡 Opcional | | numeroGTAInclusao | String | 💡 Opcional | | updateType | String | 💡 Opcional |

Nota Estrutural: Nas requisições POST, campos marcados como opcionais podem ser completamente omitidos do payload JSON para evitar processamento sobressalente.


📋 Dados da Requisição (Payload)

Essa tabela lista de forma robusta os campos do corpo JSON exato deste endpoint, baseado nos payloads presentes no Postman oficial.

🔗 Objeto Base Esperado (REQUEST BODY): AnimalSync

Campo do Payload Tipo Variável Comportamento no Envio
ultima_atualizacao String 💡 Opcional
idMorte String 💡 Opcional
idDesligamento String 💡 Opcional
idLote String 💡 Opcional
dataCadastro LocalDate 💡 Opcional
dataEntradaPropriedadeCertificada LocalDate 💡 Opcional
dataEntradaPropriedade LocalDate 💡 Opcional
dataIdentificacao LocalDate 💡 Opcional
dataNascimento LocalDate 💡 Opcional
dataAbate LocalDate 💡 Opcional
importado String 💡 Opcional
sexo String 💡 Opcional
statusAnimal String 💡 Opcional
tipoIdentificacao String 💡 Opcional
idNumero String 💡 Opcional
numero String 💡 Opcional
identificadorReceitaProdutor String 💡 Opcional
ERASPropriedadeLocalizacao String 💡 Opcional
ERASPropriedadeNascimento String 💡 Opcional
ERASPropriedadeResponsavel String 💡 Opcional
codigoRaca String 💡 Opcional
identificadorReceitaProdutorCadastramento String 💡 Opcional
registroDefinitivo String 💡 Opcional
registroProvisorio String 💡 Opcional
tipoEntrada String 💡 Opcional
idNumeracao String 💡 Opcional
idCertificadora String 💡 Opcional
numeroGTAInclusao String 💡 Opcional
lastUpdate String 💡 Opcional
updateType String 💡 Opcional

Fonte de Informação: A lista de obrigatoriedade acima foi compilada processando os exemplos reais contidos na Collection do Postman.


📦 Modelos de Dados (Data Models)

Configuração da Requisição

  • URL Base: https://api-cert.sisbov.agro.br (Produção) / https://api-cert-hom.sisbov.agro.br (Homologação)
  • Path Parameter / Query Parameter: Parâmetros definidos na própria URL (/integracao/animal). Em caso de paginação, utilizar os query parameters padrões formados por ?pageSize=20&currentPage=0.
  • Header Parameters:
    • Authorization: Bearer <seu_token_jwt> (Obrigatório em todas as chamadas)
    • Content-Type: application/json

Payload de Envio (Request)

Em endpoints que requerem o envio de corpo de dados (ex: POST, PUT), deve-se enviar um objeto JSON compatível com o DTO adequado. Variáveis obrigatórias não podem ser enviadas como nulas. Em PUTs de atualização as entidades geralmente reagem de forma atômica — você deve preencher o DTO integralmente contendo suas modificações.

Resposta (Response)

  • Sucesso (200/201/204): O payload retornado apresenta o status de confirmação, porções da entidade, ou no caso de cadastros, o { "id": "<uuid>" }.
  • Erro de Negócio (400/417):
    {
      "error": "Descrição detalhada do bloqueio pela regra de negócio"
    }
    
  • Erro de Acesso (401/403): Token expirado ou dados fora da permissão da certificadora.

🚀 Exemplo de Uso (Postman Collection)

Recorte real gerado a partir do arquivo SISBOV 2.0.postman_collection.json.

Sem exemplo de Postman disponível na coleção.


📑 Simulação Swagger (OpenAPI)

Exemplo da especificação gerada que molda a página do Swagger Interativo:

Nenhuma definição OpenAPI pública encontrada para este endpoint na especificação base.