FA Flood API Console
base_url: http://127.0.0.1:8001
ExploradorGráficoNíveis de confiançaComparaçãoDocumentação

O que é o flood_api?

O flood_api é um serviço que funciona como intermediário (proxy) entre o sistema de gestão de estações da CPRM (gage_manager) e a API pública de previsão de inundações do Google (Flood Hub). Ele busca essas previsões, guarda uma cópia recente em cache para respostas mais rápidas, e devolve os dados já organizados por estação.

Esta página existe como uma alternativa ao station_maps para quem quer testar as rotas da API diretamente, sem precisar abrir o mapa completo.

O campo hybas_id (identificador do gauge da Google Flood Hub) é gerenciado diretamente no gage_manager — não existe cadastro próprio desse mapeamento no flood_api.

GET/health

Um endpoint simples de verificação de saúde ("health check"). Retorna o status, o nome e a versão do serviço. Serve para confirmar que o flood_api está no ar antes de testar os demais endpoints.

200serviço no ar, respondendo normalmente.
GET/forecasts/{codigo_estacao}

Mostra as previsões de inundação mais recentes de uma estação específica. É a rota principal para saber o que está previsto para o rio nos próximos dias. As respostas ficam guardadas em cache por até 6 horas, então nem toda consulta busca dados novos na Google Flood Hub.

⏱ dados em cache — atualizados a cada 6 horas
200previsão encontrada e retornada normalmente.
404a estação não está cadastrada ou não tem gauge associado.
422a estação existe, mas não há previsão disponível no momento.
502a Google Flood Hub não respondeu corretamente.
GET/flood-status/{codigo_estacao}

Retorna o status de inundação mais atual de uma estação: nível de severidade, localização do gauge e o conjunto de mapas de inundação associados. Internamente reaproveita, por até 6 horas, uma única consulta de status de toda a região da Google Flood Hub, para não repetir a mesma busca a cada estação consultada.

⏱ dados em cache — atualizados a cada 6 horas
200status de inundação encontrado e retornado.
404a estação não está cadastrada ou não tem gauge associado.
422não há status de inundação disponível para o gauge desta estação.
GET/gauge-models/{codigo_estacao}

Retorna as especificações técnicas do sensor de nível de água (gauge) da Google Flood Hub associado à estação. Esses dados mudam pouco, por isso ficam guardados em cache com o mesmo TTL de metadados compartilhado usado por outras rotas de baixa volatilidade.

⏱ dados em cache — TTL de metadados compartilhado
200modelo do gauge encontrado e retornado.
404a estação não está cadastrada ou não tem gauge associado.
422não há modelo de gauge disponível para esta estação.
GET/significant-events

Lista os eventos de inundação considerados significativos pela Google Flood Hub, sem filtro por estação específica. É útil para ter uma visão geral de risco elevado na região. O resultado fica em cache com TTL de metadados compartilhado, para não sobrecarregar a API do Google a cada consulta.

⏱ dados em cache — TTL de metadados compartilhado
200lista de eventos significativos retornada.
GET/flash-floods

Lista as enchentes-relâmpago (flash floods) identificadas pela Google Flood Hub — eventos de subida rápida do nível da água, geralmente com maior urgência de resposta. O resultado fica em cache com TTL de metadados compartilhado.

⏱ dados em cache — TTL de metadados compartilhado
200lista de enchentes-relâmpago retornada.
GET/polygons/{polygon_id}

Retorna o arquivo KML (um formato de texto para geometria geográfica) do polígono que representa uma área de risco de inundação. Não é uma imagem — é texto bruto que pode ser aberto em ferramentas de mapa (ex.: Google Earth). Como a geometria é praticamente estática, o resultado fica em cache com TTL de metadados compartilhado.

⏱ dados em cache — TTL de metadados compartilhado
200KML do polígono encontrado e retornado.
502a Google Flood Hub não retornou a geometria do polígono.
GET/chart/{codigo_estacao}

Gera um gráfico em PNG com a série de previsão de inundação da estação. O resultado pode vir do cache (`X-Cache-Status: HIT`) ou ser gerado na hora (`MISS`), dependendo do parâmetro opcional `cache_enabled` (por padrão `true`).

⏱ gráfico em cache — X-Cache-Status: HIT/MISS
200gráfico PNG gerado/retornado com sucesso.
404a estação não está cadastrada ou não tem gauge associado.
422a estação existe, mas não há previsão disponível para montar o gráfico.
502a Google Flood Hub não respondeu corretamente.
GET/chart/comparison/{codigo_estacao}

Gera um gráfico em PNG sobrepondo várias emissões (issuedTime) da Google Flood Hub para a mesma estação — todas tracejadas, a mais recente em destaque e cada anterior com uma cor própria, de modo que a legenda mapeia cor → dia da emissão. As medições observadas (ANA, linha sólida azul) do mesmo período informado aparecem no eixo esquerdo (cota, cm), com as emissões da Google no eixo direito (vazão) — um só quadro com eixo duplo, no estilo do /chart. Serve para checar visualmente se as previsões reemitidas continuam consistentes entre si e com o que foi medido. A janela de datas é opcional (padrão: últimos 14 dias, incluindo hoje). Atenção: cada consulta chama a Google Flood Hub para descobrir a emissão mais recente, mesmo quando o PNG vem do cache — então HIT economiza apenas o desenho do gráfico, não a chamada ao Google.

⏱ gráfico em cache — X-Cache-Status: HIT/MISS
200gráfico comparativo gerado/retornado com sucesso.
404a estação não está cadastrada ou não tem gauge associado.
422não há emissões na janela informada, ou a janela é inválida.
502a Google Flood Hub não respondeu corretamente.
GET/stations/{codigo_estacao}

Consulta somente leitura ao cadastro do gage_manager, usado para validar o código e preencher o hybas_id.

200estação encontrada.
404código não encontrado em station_manager.estacoes.
GET/confidence-levels/{codigo_estacao}

Retorna os limites máximos e mínimos cadastrados para cada um dos sete dias de previsão.

200limites encontrados.
404a estação ainda não possui limites cadastrados.
POST/confidence-levels

Salva os limites máximos e mínimos dos sete dias na collection `confidence_levels` do MongoDB.

200cadastro salvo.
422dados inválidos (por exemplo, mínimo maior que máximo).