GET /api/v1/compare
Eine Ressource über mehrere Städte vergleichen
Vergleicht EINE Ressource (resource) über mehrere Städte (cities, kommasepariert) in einer einzigen Antwort. Jede Stadt trägt einen eigenen source_status (ok/disabled/no_data/error/not_found); eine fehlende oder tote Stadt-Quelle führt nicht zu einem Gesamt-5xx, sondern wird pro Stadt ehrlich ausgewiesen. resource wird gegen eine feste Liste geprüft (unbekannt -> 400). Neben weather/air sind auch indicators, demographics, unemployment, tourism, charging-status und weather-warnings vergleichbar. Das Ergebnis ist paginierbar (page/limit/offset/sort).
Parameter
| Name | In | Pflicht | Typ | Beispiel | Beschreibung |
|---|---|---|---|---|---|
cities | query | ja | string | berlin,koeln,hamburg | Kommaseparierte Stadt-Slugs (auf MAX_CITIES begrenzt). |
resource | query | ja | string | Zu vergleichende Ressource; unbekannt -> 400 invalid_request. weather/air = Live-Adapter (DWD/UBA); indicators, demographics, unemployment, tourism, charging-status und weather-warnings delegieren an die jeweiligen Stadt-Endpunkte (identisches Verhalten inkl. Attribution). charging-status liefert im Compare nur die Aggregate (points_omitted statt Einzelpunkt-Liste). | |
page | query | nein | integer | 1 | |
limit | query | nein | integer | 50 | |
offset | query | nein | integer | 0 | |
sort | query | nein | string | ||
order | query | nein | string | asc | |
If-None-Match | header | nein | string | Conditional GET; If-None-Match == ETag -> 304 Not Modified ohne Body. |
Code-Beispiele
curl "https://infranode.dev/api/v1/compare?cities=berlin%2Ckoeln%2Chamburg&resource=weather"const res = await fetch("https://infranode.dev/api/v1/compare?cities=berlin%2Ckoeln%2Chamburg&resource=weather");
const data = await res.json();
console.log(data);import httpx
res = httpx.get("https://infranode.dev/api/v1/compare?cities=berlin%2Ckoeln%2Chamburg&resource=weather")
res.raise_for_status()
print(res.json())