Services
Address API – Distance & ETA
Straßendistanz und Fahrzeit. Nutzt GraphHopper (Profile: car, bike, foot) und fällt bei Bedarf auf Haversine + Durchschnittsgeschwindigkeit zurück.
Route
- Methode: POST
- URL: /api/address/distance
- Auth: x-api-key (Header) oder intern
Request
- from, to: string – Adresse/Ort (optional, alternativ zu Koordinaten)
- fromLat/fromLng, toLat/toLng: number – Koordinaten (optional)
- mode: walk | bike | car | train (train → Fallback)
- startAt: ISO datetime (optional; für ETA)
Beispiel
/api/address/distance (POST)
{
"from": "Berlin Hbf",
"to": "München Hbf",
"mode": "car"
}
curl -X POST "https://dev.nuvisphere.de/api/address/distance" \
-H "Content-Type: application/json" \
-H "x-api-key: API_KEY"
-d '{
"from": "Berlin Hbf",
"to": "München Hbf",
"mode": "car"
}'
// server-side (Node/Next.js)
const res = await fetch("https://dev.nuvisphere.de/api/address/distance", {
method: "POST",
headers: {
"content-type": "application/json",
"x-api-key": process.env.MAILER_API_KEY!,
},
body: JSON.stringify({
"from": "Berlin Hbf",
"to": "München Hbf",
"mode": "car"
}),
});
if (!res.ok) throw new Error(`Request failed ${res.status}`);
const json = await res.json();
- API Key niemals im Browser verwenden – nur serverseitig (z. B.
process.env.MAILER_API_KEY
). - Lässt du optionale Felder weg, nutzt die API ggf. Template-/Defaultwerte.
- Unterstützte Modi: walk (foot), bike, car.
- train ist nicht verfügbar – Fallback wird genutzt.
- Optional: Koordinaten direkt über fromLat/fromLng & toLat/toLng angeben.
Antwort
method
: " graphhopper " oder " haversine_fallback "distance.meters
,distance.kilometers
duration.seconds
,duration.human
,duration.eta
Next.js Beispiel
Next.js Route Handler
{
"from": "Berlin Hbf",
"to": "München Hbf",
"mode": "car"
}
curl -X POST "https://dev.nuvisphere.de/api/address/distance" \
-H "Content-Type: application/json" \
-H "x-api-key: API_KEY"
-d '{
"from": "Berlin Hbf",
"to": "München Hbf",
"mode": "car"
}'
// server-side (Node/Next.js)
const res = await fetch("https://dev.nuvisphere.de/api/address/distance", {
method: "POST",
headers: {
"content-type": "application/json",
"x-api-key": process.env.MAILER_API_KEY!,
},
body: JSON.stringify({
"from": "Berlin Hbf",
"to": "München Hbf",
"mode": "car"
}),
});
if (!res.ok) throw new Error(`Request failed ${res.status}`);
const json = await res.json();
- API Key niemals im Browser verwenden – nur serverseitig (z. B.
process.env.MAILER_API_KEY
). - Lässt du optionale Felder weg, nutzt die API ggf. Template-/Defaultwerte.
- Integriere serverseitig, um API-Keys zu schützen.