Миграция

Переход с PositionStack

PositionStack прост настолько, насколько вообще может быть прост API геокодирования: параметр запроса access_key и JSON-массив data, каждый элемент которого содержит latitude, longitude, label и несколько плоских полей адреса вместо глубоко вложенной структуры. Именно эта плоскость часто и была причиной, по которой небольшая команда выбрала его изначально, ведь до первого успешного вызова нужно изучить меньше.

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

Совместимый хост My Geocode для PositionStack в точности воспроизводит массив data и его плоскую структуру полей, вплоть до названий latitude, longitude и label, и от ответа самого PositionStack отличаются только тексты об авторских правах, условиях и конфиденциальности. Справочник находится по адресу /compatibility/positionstack/. Для большинства интеграций, построенных на этом API, коду, читающему data[0].latitude, не нужны никакие изменения, кроме хоста и ключа.

Короткий список того, что нужно проверить перед переключением:

  • Проверяет ли ваш код определённый набор кодов состояния HTTP, связанный с собственными ответами об ошибках PositionStack, поскольку форматы ошибок описаны отдельно в разделе /docs/errors/ и их стоит сравнить напрямую
  • Не зашито ли где-нибудь название параметра access_key, поскольку новый хост также принимает ключ в заголовке X-API-Key, заголовке Authorization: Bearer или через HTTP Basic auth, если во время миграции вы предпочтёте отказаться от параметра запроса
  • Не раскрывает ли какой-либо клиентский код ключ напрямую; это хороший момент, чтобы перенести такой вызов за серверный прокси, независимо от того, какой провайдер окажется на другой стороне

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

Для небольшого проекта, который перерос то, на что был рассчитан второстепенный аккаунт, такая миграция обычно занимает один день тестирования, а не целый проект. Направьте тестовую сборку на новый хост, сравните выборку адресов, и если форма совпадает, само переключение сводится к изменению конфигурации.