Перенос автоматизации Zapier или Make на новый хост геокодирования
No-code автоматизации с шагом геокодирования требуют иного подхода к миграции, чем собственный код. Вот как провести такой переход.
Самостоятельный хостинг Nominatim это законный и хорошо задокументированный путь, и многие организации успешно им пользуются, особенно те, у которых есть веские причины держать инфраструктуру геокодирования полностью внутри собственной сети. Но компромисс реален, и о нём стоит сказать прямо, а не замалчивать: вы берёте на себя загрузку и импорт выгрузки данных OpenStreetMap, выделение достаточного дискового пространства и памяти для обслуживания запросов с приемлемой скоростью, поддержание этих данных в достаточно актуальном состоянии по мере обновления самого OpenStreetMap и эксплуатацию сервера с теми гарантиями доступности, которые нужны вашему приложению.
Всё это не сложно в смысле малоизвестности или отсутствия документации. Это сложно в том смысле, что это постоянная работа. Собственный экземпляр Nominatim, который отлично работал в день запуска, через год может потерять актуальность, если никто не запланировал процесс обновления, а чтобы выяснить, почему конкретный адрес перестал правильно находиться, нужно разбираться и в программном обеспечении Nominatim, и в соглашениях, по которым устроены данные OpenStreetMap.
Размещённый совместимый хост полностью снимает этот эксплуатационный слой, но ценой того, что ваш трафик геокодирования идёт через инфраструктуру третьей стороны, а не через вашу собственную; именно это решение здесь и принимается, а не вопрос о том, что один вариант просто лучше.
Совместимый хост Nominatim от My Geocode воспроизводит ровно ту же структуру ответа, что возвращает собственный или публичный экземпляр Nominatim: display_name, lat и lon в виде строк и объект адреса с названиями полей в стиле самого OpenStreetMap, например suburb и postcode; отличаются только тексты об авторских правах, условиях и конфиденциальности. Справочная информация находится на странице /compatibility/nominatim/. Коду, написанному для собственного экземпляра, должно хватить замены хоста и способа аутентификации, поскольку структура полей сохраняется.
Несколько вопросов, на которые стоит честно ответить, прежде чем выбрать тот или иной путь:
Если ответ склоняет к отказу от собственной инфраструктуры, аутентификация на стороне размещённого сервиса использует ключ, передаваемый как X-API-Key, Authorization: Bearer, HTTP Basic auth или параметр запроса, вместо правил использования на основе User-Agent, которых ожидает публичный экземпляр Nominatim. Цены включают 2 500 бесплатных запросов в день без ключа, ещё 2 500 бесплатных запросов в день на каждый ключ с учётом по сети, а затем предоплаченный баланс по 0,0001 € за запрос или ключ Unlimited за 50 € в месяц, по тому же тарифу, что и все остальные эндпоинты платформы. Для многих команд сопоставить затраты на серверы, время инженеров на поддержку и объём запросов с этими ценами самый быстрый способ решить вопрос в ту или иную сторону.