Миграция

Отказ от интеграции с часовыми поясами Google Maps Platform

Определение часового пояса редко получает отдельную строку в архитектурных заметках проекта. Обычно оно идёт в довесок к аккаунту Google Maps Platform, созданному для геокодирования или отображения карт, и вызывается там, где метку времени нужно перевести в местное время для заданной координаты. Именно эта связка делает перенос его в одиночку немного неудобным: аккаунт, оплата и ключ общие с функциями, которые вы, возможно, не переносите одновременно.

API часовых поясов Google принимает местоположение и метку времени и возвращает timeZoneId, timeZoneName и значения смещения в секундах как для стандартного времени, так и для любой поправки на летнее время. Это небольшой и чётко определённый ответ, поэтому он разумный первый кандидат на то, чтобы отделить его от более крупного аккаунта Google, прежде чем браться за геокодирование или что-то более сложное.

В My Geocode определение часового пояса работает как независимый полноценный эндпоинт, а не как слой, повторяющий форму конкретного формата Google, поскольку это один из запросов, для которых реальный рабочий ответ можно описать напрямую. Запрос для координаты возвращает идентификатор часового пояса и сведения о смещении, необходимые для перевода метки времени UTC в местное время. Подробности находятся по адресу /docs/timezone-lookup/.

Поскольку это отдельный эндпоинт, а не совместимый хост один в один, уход с API часовых поясов Google означает изменение конкретных названий полей, которые читает ваш код, и обычно это небольшое изолированное изменение, ведь данные о часовом поясе по природе занимают немного места: идентификатор, смещение и, возможно, флаг летнего времени. Это заметно меньше работы, чем миграция полной интеграции геокодирования с её разбором компонентов адреса.

Практические шаги именно для этого перехода:

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

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