Integration und Migration
Ausführbare Einstiegsbeispiele
Node.js 24 und die Python-3-Standardbibliothek. Speichern Sie OSRM_API_KEY als Server-Umgebungsvariable, niemals im Browser-Bundle. Die Beispiele senden echte Anfragen und verbrauchen reguläre Credits.
SDK · API v1.1
JavaScript-SDK-Version im Repository: 1.1.0. Die JavaScript- und Python-SDKs unterstützen asynchrone Jobs sowie Sandbox- und Metadaten-Endpunkte. Installieren Sie JavaScript über npm und Python über PyPI.
Checkliste zur Migration
- Prüfen Sie die Antwortverarbeitung mit Beispieldaten in der Sandbox, bevor Sie kostenpflichtige Live-Anfragen senden.
- OSRM verwendet longitude,latitude. Die point- und matrix-Arrays von /api/1 verwenden latitude,longitude. Der Beispieladapter zeigt die Umwandlung ausdrücklich.
- Vergleichen Sie Endpunkt, Profil, Antwortfelder und Tariflimits. Kompatibilität bedeutet keinen vollständigen direkten Ersatz für jeden Anbieter.
- Beschränken Sie den Live-Schlüssel nach Dienst, origin/IP, Ablaufdatum und Projektbudget. Testen Sie anschließend mit wenigen echten Anfragen.
- Nutzen Sie eine Übergangsfrist von 1 oder 24 Stunden, prüfen Sie den neuen Schlüssel und widerrufen Sie anschließend alte Aliase.
Asynchrone Jobs
Operationen: geocode_batch, matrix, optimize. POST /api/jobs liefert 202 und eine Job-ID. Derselbe Idempotency-Key mit gleichem Inhalt liefert den vorhandenen Job; anderer Inhalt ergibt 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.Signierte Rückmeldungen
Erstellen Sie einen öffentlichen HTTPS-Webhook, speichern Sie das einmalige Geheimnis sicher und übergeben Sie webhook_id beim Erstellen eines Jobs. Prüfen Sie X-OSRM-Timestamp und X-OSRM-Signature anhand des unveränderten Bodys.
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.
Fehler, Verfolgung und Quellenmetadaten
Fehlerantworten behalten error bei und ergänzen type, title, status, detail, code, request_id und retryable. Verwenden Sie X-Request-Id für Support und Anfrageverfolgung.
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.