İnteqrasiya və miqrasiya
İşlək başlanğıc nümunələri
Node.js 24 və Python 3 standart kitabxanası. Açarı OSRM_API_KEY mühit dəyişənində saxlayın; brauzer paketinə daxil etməyin. Nümunə canlı sorğu edir və normal kredit istifadə edir.
SDK · API v1.1
Repozitoriyadakı JavaScript SDK versiyası: 1.1.0. JavaScript və Python SDK-ları async tapşırıqları, sandbox və metadata endpoint-lərini dəstəkləyir. JavaScript paketini npm-dən, Python paketini PyPI-dən quraşdırın.
Mövcud inteqrasiyanı köçürmək
- Əvvəl sandbox-da cavab strukturunu yoxlayın. Cavab fixture-dir; canlı geocoding və yol hesablaması deyil.
- OSRM üçün koordinat sırası longitude,latitude; /api/1 üçün point və matrix nöqtələri latitude,longitude-dur. Nümunə adapter bu fərqi açıq göstərir.
- Uyğun endpoint, profil, cavab sahələri və limitləri sənədlərlə müqayisə edin. Bütün provayderlər üçün tam drop-in uyğunluq vəd edilmir.
- Canlı açarı servis, origin/IP, bitmə tarixi və layihə büdcəsi ilə məhdudlaşdırın. Sonra aşağı yüklə real test edin.
- Keçiddə köhnə açara 1 və ya 24 saat vaxt verin. Yeni açarın işlədiyini gördükdən sonra köhnəni ləğv edin.
Asinxron tapşırıqlar
Əməliyyatlar: geocode_batch, matrix, optimize. POST /api/jobs 202 və iş ID-si qaytarır. Eyni Idempotency-Key və eyni məzmun eyni işi qaytarır; dəyişmiş məzmun 409 qaytarır.
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.İmzalanmış bildirişlər
Paneldə HTTPS webhook yaradın, birdəfəlik secret-i təhlükəsiz saxlayın və POST /api/jobs üçün webhook_id verin. X-OSRM-Timestamp və X-OSRM-Signature başlıqlarını xam body ilə yoxlayın.
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.
Xətalar, sorğu izi və mənbə məlumatları
Xəta cavabları köhnə error sahəsini saxlayır və type, title, status, detail, code, request_id, retryable əlavə edir. X-Request-Id dəstək və sorğu izi üçün istifadə olunur.
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.