Миграция

Переход с Bing Maps REST Services

У Bing Maps REST Services узнаваемый формат ответа: объект верхнего уровня с массивом resourceSets, каждый элемент которого содержит resources, а каждый ресурс содержит объект point с координатами, вложенными в массив coordinates, а не в отдельные поля широты и долготы. Разработчики, работавшие с ним (часто в .NET-командах, где Bing Maps был естественным выбором), знают эту структуру наизусть, а переписывание кода под другую структуру представляет собой как раз ту незаметную, утомительную работу, из-за которой миграция месяцами не попадает в календарь.

Ключ, созданный в Bing Maps Dev Center, передаётся как параметр запроса, и эта схема общая для большинства потребительских картографических API. Эта часть интеграции обычно беспокоит меньше всего: настоящая связанность кроется в разборе ответа.

My Geocode поддерживает совместимый хост Bing Maps, который воспроизводит точно такую же структуру resourceSets, поэтому код разбора, читающий resourceSets[0].resources[0].point.coordinates, продолжает работать после замены. Единственное содержимое ответа, которое отличается от оригинального формата Bing, это текст об авторских правах, условиях и конфиденциальности, который по необходимости наш. Подробности на странице /compatibility/bing-maps/.

Что стоит проверить перед переключением:

  • Выясните, читает ли ваш код поля уверенности или кода совпадения, поскольку их стоит быстро сравнить бок о бок
  • Выясните, какой способ аутентификации использует ваша клиентская библиотека: ключ можно передать как X-API-Key, Authorization: Bearer, HTTP Basic auth или параметр запроса, так что тот способ, который уже использует ваша библиотека, должен продолжить работать
  • Решите, нужно ли включать дополнительные поля (высота, угрозы для IP, сведения о сети) через mg_extras=1, поскольку они добавляются рядом со стандартным форматом, а не заменяют его

Коммерческая сторона на этом фоне проста. Нет шага настройки платёжного аккаунта: 2 500 запросов в день бесплатны вообще без ключа, и каждый ключ получает собственные 2 500 бесплатных запросов в день с учётом по сети. Сверх этого лимита действует предоплаченный баланс по 0,0001 € за запрос или ключ Unlimited за 50 € в месяц, а совместимый хост стоит столько же, сколько любой другой эндпоинт платформы.

Для команд, у которых геокодирование входит в более крупное .NET- или корпоративное приложение, миграция обычно меньше по объёму, чем кажется со стороны, потому что обёртка resourceSets, как правило, читается через несколько хорошо изолированных методов доступа, а не разбросана по всей кодовой базе. Разумный способ проверить переход, прежде чем трогать рабочий трафик: сначала найти эти точки доступа, а затем направить их на новый хост в тестовой среде.

Если ваша интеграция помимо геокодирования вызывает эндпоинт часовых поясов или высоты Bing, это решается отдельно, поскольку собственные определения часового пояса и высоты My Geocode работают независимо от совместимого хоста геокодирования, и их стоит подключать по их собственным правилам, а не пропускать через тот же путь кода. Полные сведения о квоте, включая X-Quota-Limit и связанные заголовки ответа, которые есть в каждом запросе, описаны на странице /docs/rate-limits/.