osrmroute

Интеграция и миграция

Готовые стартовые примеры

Node.js 24 и стандартная библиотека Python 3. Храните OSRM_API_KEY в переменной окружения сервера, никогда не включайте секрет в код браузера. Примеры выполняют реальные запросы и расходуют обычные кредиты.

SDK · API v1.1

Версия JavaScript SDK в репозитории: 1.1.0. SDK для JavaScript и Python поддерживают асинхронные задачи, sandbox и метаданные. Установите JavaScript из npm, а Python из PyPI.

Проверки при миграции

  1. Проверьте обработку ответов в sandbox с тестовыми данными перед платным реальным запросом.
  2. OSRM использует longitude,latitude. Массивы point и matrix в /api/1 используют latitude,longitude. Пример адаптера явно показывает преобразование.
  3. Сравните endpoint, профиль, поля ответа и лимиты тарифа. Совместимость не означает полной прямой замены любого провайдера.
  4. Ограничьте рабочий ключ по сервису, origin/IP, сроку действия и бюджету проекта, затем проведите небольшой реальный тест.
  5. Используйте переходный период 1 или 24 часа, проверьте новый ключ и отзовите старые псевдонимы.

Асинхронные задачи

Операции: geocode_batch, matrix, optimize. POST /api/jobs возвращает 202 и ID задачи. Одинаковые Idempotency-Key и содержимое возвращают существующую задачу; другое содержимое возвращает 409.

curl -X POST https://osrmroute.com/api/jobs \
  -H "Authorization: Bearer $OSRM_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: your-durable-operation-id-001" \
  -d '{"operation":"geocode_batch","input":{"queries":["Baku, Azerbaijan"]}}'
GET    /api/jobs/{id}
GET    /api/jobs/{id}?result=1
DELETE /api/jobs/{id}     # queued jobs only
States: queued → running → completed | failed | unknown
queued → cancelled | expired
Inputs/results: encrypted, 24-hour expiry
Unknown outcomes: investigate X-Request-Id; never auto-retry
Normal API entitlement, origin/IP policy and credits apply at dispatch.

Подписанные уведомления

Создайте публичный HTTPS webhook, безопасно сохраните однократно выдаваемый секрет и передайте webhook_id при создании задачи. Проверяйте X-OSRM-Timestamp и X-OSRM-Signature по исходному телу запроса.

signature = "sha256=" + HMAC_SHA256(secret, timestamp + "." + rawBody)
Reject timestamps outside ±300 seconds.
Compare signatures in constant time. Persist event IDs to deduplicate.
Callbacks contain event ID, job ID and state; fetch results with the API key.
Timeout: 10s. At most 5 attempts with backoff. No redirects.
Treat repeated delivery as normal; do not repeat a charge or job.

Ошибки, отслеживание и метаданные источников

Ответы об ошибках сохраняют error и добавляют type, title, status, detail, code, request_id и retryable. Используйте X-Request-Id для поддержки и отслеживания запросов.

GET /api/source-metadata   # live key, info scope
Coverage/freshness/source evidence only; no inferred legal speed limit.
Trace retention: 7 days; service names, durations and status only.
No request coordinates, payload, raw keys or SQL text in traces.
Команда поддержки

Поддержка OSRMRoute

Напишите нашей команде напрямую

МЫ ГОТОВЫ ПОМОЧЬ

Чем вам помочь?

Задайте вопрос об интеграции, оплате или аккаунте. Ответы появятся в этой беседе.

Ваши чаты

Ваши чаты появятся здесь.