Миграция

Отказ от интеграции с автодополнением Google Places

Автодополнение это интеграция иного рода, чем отдельный вызов геокодирования. Оно срабатывает почти на каждое нажатие клавиши пользователя в поле адреса, у некоторых провайдеров зависит от тарификации или группировки по сессиям, а ответ должен приходить достаточно быстро, потому что задержка заметна тому, кто печатает. Миграция этой части несёт больший риск для UX, чем задание пакетного геокодирования, именно потому, что пользователи взаимодействуют с ней напрямую и в реальном времени.

Google Places Autocomplete возвращает список прогнозов, каждый со строкой description и идентификатором place_id, который используется в последующем запросе подробностей для получения полного адреса и координат. Этот двухшаговый шаблон (сначала прогнозы, затем подробности) представляет собой особую модель взаимодействия, которая определяет многое во фронтенд-коде, построенном вокруг неё, включая время задержки ввода (debounce) и то, как выбранные результаты отображаются до завершения запроса подробностей.

Это тот случай, когда важно честно описывать возможности. My Geocode предоставляет автодополнение адресов в составе своих эндпоинтов поиска, с формой запроса и ответа, описанной по адресу /docs/address-autocomplete/, но конкретное поведение любого эндпоинта автодополнения, включая группировку по сессиям и ранжирование результатов, стоит протестировать напрямую на ваших собственных адресных данных и сценариях пользователей, а не предполагать точное соответствие двухшаговой модели Google. Разные провайдеры по-разному строят переход от подсказки к подробностям, и эта структурная разница обычно и составляет самую большую реальную задачу миграции, больше, чем любое отдельное название поля.

Практические шаги для этой миграции:

  • Определите, нужен ли вашей текущей реализации двухшаговый шаблон «сначала прогнозы, затем подробности» или эндпоинт подсказок с одним вызовом на самом деле упростил бы ваш фронтенд-код
  • Протестируйте настройки задержки ввода и минимального количества символов на реальном времени ответа нового эндпоинта в ваших собственных сетевых условиях, а не используйте повторно значения, подобранные под инфраструктуру Google
  • Проверьте, как ваш интерфейс обрабатывает список прогнозов, который пришёл пустым или всего с одним результатом, поскольку поведение ранжирования у разных провайдеров заметно различается, и ваш запасной UX не должен зависеть от получения нескольких подсказок

Аутентификация для нового эндпоинта работает с ключом в заголовке X-API-Key, через Authorization: Bearer, HTTP Basic auth или параметр запроса. Доступно 2 500 бесплатных запросов в день вообще без ключа и ещё 2 500 бесплатных на каждый ключ в день с учётом по сети, а сверх этого действует предоплаченный баланс по 0,0001 € за запрос или ключ Unlimited за 50 € в месяц, по той же ставке, что и для любого другого эндпоинта.

Поскольку вызовов автодополнения может быть много по сравнению с реальными вызовами геокодирования (большинство нажатий клавиш порождают запрос), стоит оценить ожидаемый дневной объём относительно бесплатной квоты и цены за запрос, прежде чем назначать дату запуска, чтобы в первую неделю живого трафика не было сюрпризов.