PS-Request (Pendlerfahrplan)
Stellt wiederkehrende Fahrten (z. B. täglicher Arbeitsweg) als kompakten Pendlerfahrplan bereit.
Endpoint
- Pfad:
XML_PS_REQUEST
- Methode: GET
NOTE
Die exakten Parameterbezeichner können je nach System leicht abweichen. Prüfen Sie die PDF und Ihr Systemsetup.
Parameter (Auszug)
Parameter | Typ | Beschreibung |
---|---|---|
originId | string | Start-Haltestelle/-Objekt |
destId | string | Ziel-Haltestelle/-Objekt |
date | string | Startdatum YYYYMMDD |
fromTime | string | Anfangszeitfenster HHMM |
toTime | string | Endzeitfenster HHMM |
weekdays | string | Wochentage, z. B. Mo,Di,Mi,Do,Fr |
maxTrips | number | Max. Anzahl Fahrten |
Beispiel-Request
GET /XML_PS_REQUEST?originId=de:05513:1001&destId=de:05913:1000&date=20250125&fromTime=0700&toTime=0900&weekdays=Mo,Di,Mi,Do,Fr&maxTrips=4
Antwort (Beispiel)
json
{
"commuterPlan": [
{ "dep": "07:12", "arr": "07:46", "changes": 0, "summary": "Bus 196 → Ziel" },
{ "dep": "07:27", "arr": "08:03", "changes": 1, "summary": "U11 + RE2" }
],
"valid": { "from": "2025-01-25", "to": "2025-07-25" }
}
JavaScript-Beispiele
js
async function getPendlerfahrplan(params) {
const base = 'https://server:port/virtuellesVerzeichnis/XML_PS_REQUEST'
const usp = new URLSearchParams()
Object.entries(params).forEach(([k,v]) => usp.set(k, String(v)))
const res = await fetch(`${base}?${usp}`)
if (!res.ok) throw new Error('HTTP ' + res.status)
return res.json()
}
ts
import LRU from 'lru-cache'
const cache = new LRU<string, any>({ max: 200, ttl: 60_000 })
const base = 'https://server:port/virtuellesVerzeichnis/XML_PS_REQUEST'
export async function getPS(params: Record<string,string|number>) {
const key = 'ps:' + JSON.stringify(params)
const hit = cache.get(key)
if (hit) return hit
const usp = new URLSearchParams()
for (const [k,v] of Object.entries(params)) usp.set(k, String(v))
const res = await fetch(`${base}?${usp}`)
if (!res.ok) throw new Error('HTTP ' + res.status)
const data = await res.json()
cache.set(key, data)
return data
}
Hinweise
- Nutzen Sie
weekdays
, um nur Werktage (oder z. B. nur Sa/So) auszuwählen. - Für die Darstellung genügt oft ein kompaktes Raster (z. B. 3–6 Fahrten je Zeitfenster).
title: PS-Request (Pendlerfahrplan) outline: deep
PS-Request (Pendlerfahrplan)
Stellt wiederkehrende Fahrten (z. B. täglicher Arbeitsweg) als kompakten Pendlerfahrplan bereit.
Endpoint
- Pfad:
XML_PS_REQUEST
- Methode: GET
NOTE
Die exakten Parameterbezeichner können je nach System leicht abweichen. Prüfen Sie die PDF und Ihr Systemsetup.
Parameter (Auszug)
Parameter | Typ | Beschreibung |
---|---|---|
originId | string | Start-Haltestelle/-Objekt |
destId | string | Ziel-Haltestelle/-Objekt |
date | string | Startdatum YYYYMMDD |
fromTime | string | Anfangszeitfenster HHMM |
toTime | string | Endzeitfenster HHMM |
weekdays | string | Wochentage, z. B. Mo,Di,Mi,Do,Fr |
maxTrips | number | Max. Anzahl Fahrten |
Beispiel-Request
GET /XML_PS_REQUEST?originId=de:05513:1001&destId=de:05913:1000&date=20250125&fromTime=0700&toTime=0900&weekdays=Mo,Di,Mi,Do,Fr&maxTrips=4
Antwort (Beispiel)
json
{
"commuterPlan": [
{ "dep": "07:12", "arr": "07:46", "changes": 0, "summary": "Bus 196 → Ziel" },
{ "dep": "07:27", "arr": "08:03", "changes": 1, "summary": "U11 + RE2" }
],
"valid": { "from": "2025-01-25", "to": "2025-07-25" }
}
JavaScript-Beispiele
js
async function getPendlerfahrplan(params) {
const base = 'https://server:port/virtuellesVerzeichnis/XML_PS_REQUEST'
const usp = new URLSearchParams()
Object.entries(params).forEach(([k,v]) => usp.set(k, String(v)))
const res = await fetch(`${base}?${usp}`)
if (!res.ok) throw new Error('HTTP ' + res.status)
return res.json()
}
ts
import LRU from 'lru-cache'
const cache = new LRU<string, any>({ max: 200, ttl: 60_000 })
const base = 'https://server:port/virtuellesVerzeichnis/XML_PS_REQUEST'
export async function getPS(params: Record<string,string|number>) {
const key = 'ps:' + JSON.stringify(params)
const hit = cache.get(key)
if (hit) return hit
const usp = new URLSearchParams()
for (const [k,v] of Object.entries(params)) usp.set(k, String(v))
const res = await fetch(`${base}?${usp}`)
if (!res.ok) throw new Error('HTTP ' + res.status)
const data = await res.json()
cache.set(key, data)
return data
}
Hinweise
- Nutzen Sie
weekdays
, um nur Werktage (oder z. B. nur Sa/So) auszuwählen. - Für die Darstellung genügt oft ein kompaktes Raster (z. B. 3–6 Fahrten je Zeitfenster).