Skip to Content
UsuárioAPI'sAPI Gateway

Visão geral

Este gateway expõe os serviços REST e de tiles das prefeituras/tenants da Topocart e também proxies para provedores externos. O cliente consome apenas este gateway.

  • Base URL: https://{HOST_DO_GATEWAY}
  • Todos os caminhos abaixo são relativos à base.
  • Respostas incluem o header X-Target-URL indicando para onde a requisição foi encaminhada.

Autenticação

Endpoints protegidos: /rest/**, /tiles/**, /plataforma/rest/**, /plataforma/tiles/** e /outros/arcgis-manaus/**.

Formas aceitas:

  1. Bearer
    Authorization: Bearer {auth_token}

  2. Headers específicos de tenant

X-Auth-Token: {auth_token} X-Tn-Token: {id_tenant_em_base64} // ex.: 5 -> base64: NQ==
  1. Query params (legado)
    ?x_auth_token={auth_token}&x_tn_token={id_tenant_em_base64}

Notas:

  • Para chamadas vindas da intranet, envie X-Origin: login_intranet e Authorization: Bearer {jwt_intranet} mais nome_tenant na query para identificar o município.
  • Tokens são validados no banco vm2.usuarios e o tenant define o município usado nos templates de URL.

Endpoints

REST

  • GET /rest/* – proxy para o serviço REST do município do usuário.
  • GET /plataforma/rest/* – proxy fixo para a instância plataforma.
  • Os segmentos após /rest ou /plataforma/rest são repassados como caminho e query string ao destino.

Exemplos:

curl -H "Authorization: Bearer <token>" \ "https://{HOST}/rest/imobiliario?limit=20" curl -H "Authorization: Bearer <token>" \ "https://{HOST}/plataforma/rest/imoveis?id=10"

Tiles (vector/rasters)

  • GET /tiles/* – proxy para o tileserver do município do usuário.
  • GET /plataforma/tiles/* – proxy para tiles da instância plataforma.
  • Para intranet: envie X-Origin: login_intranet e nome_tenant={slug_municipio} na query.

Exemplos:

curl -H "Authorization: Bearer <token>" \ "https://{HOST}/tiles/legado.imobiliario/7/47/70.pbf" curl -H "Authorization: Bearer <token>" \ "https://{HOST}/plataforma/tiles/base_publica/5/15/12.pbf"

Provedores externos (/outros)

Repassam chamadas a serviços públicos; só arcgis-manaus requer autenticação (token obtido automaticamente pelo gateway).

  • GET /outros/geobases/*https://ide.geobases.es.gov.br/geoserver/ows
  • GET /outros/arcgis-manaus/*https://pmm.manaus.am.gov.br/arcgis/.../export (auth automática)
  • GET /outros/arcgis-blumenau/*https://geo.blumenau.sc.gov.br/.../export
  • GET /outros/sigef/{tema}/*http://acervofundiario.incra.gov.br/i3geo/ogc.php?tema={tema}
  • GET /outros/siscom-ibama/*https://siscom.ibama.gov.br/geoserver/ows
  • GET /outros/geoservicos-censo-2022-ibge/*https://geoservicoscenso2022.ibge.gov.br/geoserver/censo2022/ows
  • GET /outros/geoservicos-ibge/*https://geoservicos.ibge.gov.br/geoserver/ows
  • GET /outros/pedea-sema-ce/*https://pedea.sema.ce.gov.br/geoserver/inde/wms
  • GET /outros/mapas-fortaleza-ce/*https://mapas.fortaleza.ce.gov.br/api/geoserver/ows
  • GET /outros/geoservicos-inde-icmbio/*https://geoservicos.inde.gov.br/geoserver/ICMBio/ows
  • GET /outros/geoservicos-inde-semacece/*https://geoservicos.inde.gov.br/geoserver/SEMACECE/ows
  • GET /outros/mapbox-balneariocamboriu/*https://geo.bc.sc.gov.br/apimapa/v2/source/test/151/1/{z}/{x}/{y}.mvt

Observações:

  • Para sigef, o caminho precisa incluir o tema: ex. /outros/sigef/certificada_sigef_particular_mg/?SERVICE=WMS&REQUEST=GetMap...
  • Chamadas com FORMAT=image retornam binário (PNG/JPEG/MVT); demais retornam XML/JSON conforme o serviço original.

Saúde e monitoramento

  • GET /health – status simples.
  • GET /health/detailed – inclui circuit breakers (rest, tiles, auth) e métricas de memória/uptime.
  • GET /health-check/startup – checa conexão ao banco.
  • GET /health-check/readiness – valida alcance ao REST de plataforma.
  • GET /health-check/liveness – simples OK.

Regras de cache e headers

  • Para tiles .pbf o gateway define Content-Type: application/vnd.mapbox-vector-tile.
  • Respostas de tiles recebem headers de no-cache para garantir dados atuais.
  • Serviços externos repassam Access-Control-Allow-Origin: * quando aplicável.

Erros comuns

  • 401 Unauthorized: token ausente ou inválido (ver formatos aceitos).
  • 422 em /outros/sigef: tema não enviado.
  • 5xx: falha no serviço de destino; consulte X-Target-URL para depuração.

Checklist rápido

  • Tenha o auth_token válido (e tenant em base64 quando aplicável).
  • Use o header/caminho correto (/rest, /tiles, /plataforma/...).
  • Em intranet, envie X-Origin: login_intranet e nome_tenant na query.
  • Para serviços externos, reutilize os mesmos parâmetros suportados pelo provedor original.