Migração

Migrando do Bing Maps REST Services

O Bing Maps REST Services tem um formato de resposta reconhecível: um objeto de nível superior com um array resourceSets, cada um contendo resources, e cada recurso trazendo um objeto point com as coordenadas aninhadas dentro de um array coordinates, em vez de campos separados de latitude e longitude. Os desenvolvedores que trabalharam com ele, muitas vezes em empresas .NET onde o Bing Maps era a escolha natural, conhecem essa estrutura de cor, e reescrever tudo em torno de outra é exatamente o tipo de trabalho silencioso e tedioso que mantém uma migração fora da agenda por meses.

Uma chave gerada pelo Bing Maps Dev Center é enviada como parâmetro de consulta, um padrão compartilhado com a maioria das APIs de mapas para o consumidor. Essa parte da integração costuma ser a menor das preocupações; o parsing da resposta é onde está o acoplamento de verdade.

O My Geocode mantém um host de compatibilidade com o Bing Maps que reproduz exatamente essa estrutura resourceSets, então o código de parsing que lê resourceSets[0].resources[0].point.coordinates continua funcionando após a troca. O único conteúdo da resposta que não segue o formato original do Bing é o texto de copyright, termos e privacidade, que é nosso por necessidade. Os detalhes completos estão em /compatibility/bing-maps/.

Algumas coisas que vale verificar antes da virada:

  • Confirme se o seu código lê campos de confiança ou de código de correspondência, já que vale a pena compará-los rapidamente lado a lado
  • Confirme qual estilo de autenticação a sua biblioteca cliente usa; uma chave pode ser enviada como X-API-Key, Authorization: Bearer, autenticação HTTP Basic ou parâmetro de consulta, então o que a sua biblioteca já faz deve continuar funcionando
  • Decida se você quer ativar os campos extras opcionais (altitude, ameaças de IP, detalhes de rede) com mg_extras=1, já que eles ficam ao lado do formato padrão em vez de substituí-lo

O lado comercial é simples em comparação. Não há etapa de configuração de conta de faturamento: 2.500 requisições por dia são gratuitas sem nenhuma chave, e cada chave recebe suas próprias 2.500 requisições gratuitas por dia, contadas por rede. Acima dessa cota, é crédito pré-pago a € 0,0001 por requisição ou uma chave Unlimited a € 50 por mês, e o host de compatibilidade custa o mesmo que qualquer outro endpoint da plataforma.

Para equipes que usam geocodificação como parte de uma aplicação .NET ou corporativa maior, a migração geralmente tem um escopo menor do que parece de fora, porque o invólucro resourceSets normalmente é lido por meio de um punhado de métodos de acesso bem delimitados, e não espalhado pelo código. Encontrar primeiro esses pontos de acesso e depois apontá-los para o novo host em um ambiente de homologação é uma forma razoável de validar a troca antes de mexer no tráfego de produção.

Se a sua integração também chama um endpoint de fuso horário ou de altitude do Bing além da geocodificação, eles são tratados separadamente, já que as consultas de fuso horário e de altitude do próprio My Geocode funcionam de forma independente do host de compatibilidade de geocodificação e merecem ser integradas em seus próprios termos, em vez de forçadas pelo mesmo caminho de código. Os detalhes completos da cota, incluindo o X-Quota-Limit e os cabeçalhos de resposta relacionados que toda requisição traz, estão documentados em /docs/rate-limits/.