Alerta de Desastres Naturais NASA EONET
Entrar com GitHub
UTC 2026-09-03 21:46:12
Local

Documentação Referência

API

Todos os endpoints, com o que cada um garante

3 min de leitura

API

Todos os endpoints devolvem JSON. Nenhum exige chave de API.

Clientes

método rota o que garante
POST /api/clientes 201 com Location; 409 no documento repetido, em qualquer forma
GET /api/clientes paginado, com teto de 100
GET /api/clientes/pesquisar?termo= busca por nome, sobrenome ou documento
GET /api/clientes/{id}
GET /api/clientes/documento/{documento} aceita com ou sem pontuação
PUT /api/clientes/{id} manter o mesmo documento passa
DELETE /api/clientes/{id} 204; contatos e endereços caem em cascata

Endereços

método rota o que garante
GET /api/enderecos/consultar-cep/{cep} 404 se não existe, 503 se o provedor caiu
POST /api/enderecos o CEP preenche o que faltou; clienteId opcional liga na hora
GET /api/enderecos/cliente/{clienteId}
POST /api/enderecos/{id}/vincular/{clienteId} idempotente
DELETE /api/enderecos/{id}

Toda resposta traz participaDoAlertaDeProximidade e o motivo quando é false.

Contatos

método rota o que garante
POST /api/contatos 409 no e-mail repetido, inclusive em caixa diferente
GET /api/contatos/email/{email} resposta única — garantida pelo UNIQUE
GET /api/contatos/tipo/{tipo}
GET /api/contatos/emergencia/cliente/{clienteId} não paginado: quem vai ser avisado tem de ser avisado inteiro
POST /api/contatos/{id}/vincular/{clienteId} é este vínculo que faz o alerta existir
PUT DELETE /api/contatos/{id}

Toda resposta traz recebeAlerta e motivoNaoRecebeAlerta.

Eventos

método rota o que garante
POST /api/eventos/sincronizar?limite=&dias=&apenasAtivos= POST porque escreve; idempotente por eonetId
GET /api/eventos mais recentes primeiro
GET /api/eventos/categoria/{categoria}
GET /api/eventos/eonet/{eonetId}
GET /api/eventos/proximos?latitude=&longitude=&raioKm=&dias= duas etapas; a distância vem junto
GET /api/eventos/estatisticas/categorias?dias=
GET /api/eventos/resumo total e ativos

Alertas

método rota o que garante
POST /api/alertas/varrer?raioKm=&dias= descobre e registra, sem enviar; seguro de repetir
POST /api/alertas/despachar?limite= envia o que está na fila
GET /api/alertas /situacao/{s} /cliente/{id} destino mascarado
GET /api/alertas/resumo contagem por situação
GET /api/alertas/meio-de-entrega entregaDeVerdade — a tela não pode mentir

Erros

Toda falha devolve o mesmo formato, com a causa-raiz nomeada:

{"erro":"...","causa":"CONFLITO_DE_ESTADO","alvo":"documento","operacao":"cadastrar-cliente"}
causa-raiz HTTP
DADO_INVALIDO 400
DADO_AUSENTE 404
CONFLITO_DE_ESTADO 409
PROVEDOR_INDISPONIVEL · TEMPO_ESGOTADO · CONCORRENCIA 503
PROVEDOR_RECUSOU 502
PERSISTENCIA_FALHOU · CONFIGURACAO_AUSENTE 500

O campo alvo é o nome do campo, e é por ele que a tela sabe qual caixa destacar.