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-URLindicando para onde a requisição foi encaminhada.
Autenticação
Endpoints protegidos: /rest/**, /tiles/**, /plataforma/rest/**, /plataforma/tiles/** e /outros/arcgis-manaus/**.
Formas aceitas:
-
Bearer
Authorization: Bearer {auth_token} -
Headers específicos de tenant
X-Auth-Token: {auth_token}
X-Tn-Token: {id_tenant_em_base64} // ex.: 5 -> base64: NQ==- 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_intraneteAuthorization: Bearer {jwt_intranet}maisnome_tenantna query para identificar o município. - Tokens são validados no banco
vm2.usuariose 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ânciaplataforma.- Os segmentos após
/restou/plataforma/restsã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ânciaplataforma.- Para intranet: envie
X-Origin: login_intranetenome_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/owsGET /outros/arcgis-manaus/*→https://pmm.manaus.am.gov.br/arcgis/.../export(auth automática)GET /outros/arcgis-blumenau/*→https://geo.blumenau.sc.gov.br/.../exportGET /outros/sigef/{tema}/*→http://acervofundiario.incra.gov.br/i3geo/ogc.php?tema={tema}GET /outros/siscom-ibama/*→https://siscom.ibama.gov.br/geoserver/owsGET /outros/geoservicos-censo-2022-ibge/*→https://geoservicoscenso2022.ibge.gov.br/geoserver/censo2022/owsGET /outros/geoservicos-ibge/*→https://geoservicos.ibge.gov.br/geoserver/owsGET /outros/pedea-sema-ce/*→https://pedea.sema.ce.gov.br/geoserver/inde/wmsGET /outros/mapas-fortaleza-ce/*→https://mapas.fortaleza.ce.gov.br/api/geoserver/owsGET /outros/geoservicos-inde-icmbio/*→https://geoservicos.inde.gov.br/geoserver/ICMBio/owsGET /outros/geoservicos-inde-semacece/*→https://geoservicos.inde.gov.br/geoserver/SEMACECE/owsGET /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=imageretornam 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 deplataforma.GET /health-check/liveness– simples OK.
Regras de cache e headers
- Para tiles
.pbfo gateway defineContent-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).422em/outros/sigef: tema não enviado.5xx: falha no serviço de destino; consulteX-Target-URLpara depuração.
Checklist rápido
- Tenha o
auth_tokenválido (etenantem base64 quando aplicável). - Use o header/caminho correto (
/rest,/tiles,/plataforma/...). - Em intranet, envie
X-Origin: login_intranetenome_tenantna query. - Para serviços externos, reutilize os mesmos parâmetros suportados pelo provedor original.