Миграция

Переход с Google Maps Platform: что меняется, что остаётся

Google Maps Platform часто становится первым API геокодирования, который подключает команда, в основном потому, что это самое громкое имя на рынке. Его модель аутентификации уже знакома большинству разработчиков: API-ключ, привязанный к платёжному аккаунту в проекте Google Cloud и передаваемый как параметр запроса в каждом обращении. Ответы геокодирования возвращаются в виде JSON-объекта с массивом results, полем status, строкой formatted_address и вложенным объектом geometry.location с широтой и долготой.

Больше всего при переходе команды обычно беспокоит код разбора, построенный вокруг именно этого формата. Компоненты адреса, границы области просмотра, идентификаторы мест: всё это читают функции, разбросанные по кодовой базе, а переписывание этих функций представляет собой как раз ту задачу, которую никто не хочет ставить в план. Именно эту проблему и призван устранить совместимый хост.

My Geocode поддерживает совместимый хост Google Maps, который воспроизводит собственный формат запросов и ответов геокодирования Google поле в поле. Единственный текст в ответе, который принадлежит нам, это формулировки об авторских правах, условиях и конфиденциальности, а всё остальное, включая названия полей и вложенность, совпадает с тем, что уже ожидает ваш код. На практике миграция означает замену имени хоста и ключа, а не правку парсера. Подробности на странице /compatibility/google-maps/.

Что остаётся прежним:

  • Структура JSON, которую уже разбирает ваш код
  • Передача ключа в параметре запроса, если так делает ваш клиент
  • Общая схема запроса (на входе адрес, на выходе структурированные данные о местоположении)

Что меняется:

  • Хост, на который вы отправляете запросы
  • Сам ключ, который выдаём мы, а не Google
  • Требование платёжного аккаунта, которое заменяет более простая модель с балансом или подпиской

Поскольку ключ можно передать в заголовке X-API-Key, в заголовке Authorization: Bearer, через HTTP Basic auth или в параметре запроса, клиентская библиотека, которая уже аутентифицируется своим особым способом, обычно продолжает работать без изменений. Эта гибкость важнее, чем может показаться, ведь на практике много проблем при миграции возникает из-за библиотек, рассчитанных на один конкретный способ передачи учётных данных.

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

Дополнительные поля (высота рельефа, признаки угроз для IP и сведения о сети) доступны на любом совместимом хосте при добавлении mg_extras=1 или заголовка X-MG-Extras, не нарушая формат, от которого зависит остальной ваш код. Это даёт возможность позже получить более богатые данные без второй миграции.

Если ваша интеграция также использует обратное геокодирование, автодополнение или поиск почтовых индексов, та же замена хоста и ключа применяется и к ним, хотя точный формат запроса и ответа этих эндпоинтов стоит сверить с вашим текущим кодом перед переключением, поскольку соглашения о форматировании адресов различаются по странам. Разумный способ убедиться, что формат соответствует ожиданиям: перед полным переходом протестировать на новом хосте часть рабочего трафика. Полный справочник полей для всех совместимых хостов на странице /docs/compatibility/.