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.
/healthUm 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.
/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/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/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/significant-eventsLista 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/flash-floodsLista 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/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/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/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/stations/{codigo_estacao}Consulta somente leitura ao cadastro do gage_manager, usado para validar o código e preencher o hybas_id.
/confidence-levels/{codigo_estacao}Retorna os limites máximos e mínimos cadastrados para cada um dos sete dias de previsão.
/confidence-levelsSalva os limites máximos e mínimos dos sete dias na collection `confidence_levels` do MongoDB.