Der RKI-Wrapper greift auf die API des Robert Koch-Instituts zu und gibt die ausgelieferten Daten in einer für Datawrapper geeigneten Form zurück.
Der Wrapper holt in einer einzelnen Anfrage die Daten bis zum gewählten End-Datum gemeldeten Fälle und aggregiert die Fallzahlen pro Tag und wahlweise nach weiteren Feldern, wie Altersgruppe oder Landkreis. Im Anschluss berechnet er die kumulative Summe der Fallzahlen vom ersten Meldetag an (=2020-01-24).
Hinweis: Um herauszufinden, welche Werte man in die Felder einsetzen kann, lohnt sich ein Blick in den Überblick der Daten. Eine detaillierte Beschreibung der RKI-API findet sich in RKI-API.md.
Für die Verwendung der Daten in Apps und interaktiven Grafiken (Datawrapper) stellen wir einen API bereit, die das Abfragen der RKI-Daten nach bestimmten Parametern (Zeitpunkt, Bundesland, Dateiformat) ermöglicht.
URL: https://europe-west3-brdata-corona.cloudfunctions.net/rkiApi/
startDate
| optional | Default: '2020-01-24' (= erster Tag, den das RKI liefert): Gibt an, ab welchem Tag der Wrapper Daten zurück gibt. Hinweis: Die aggregierten Fallzahlen enthalten auch weiter zurückliegende Fälle alsfromDate
.endDate
| optional | Default: aktuelles Datum: Gibt an, bis zu welchem Tag der Wrapper Daten zurück gibtdateField
| optional | Default: Meldedatum: Gibt an, zu welchem Datum Fälle zählen. Mögliche Werte sindMeldedatum
undRefdatum
, wobeiRefdatum
den Erkrankungsbeginn (= Datum des Symptombeginns) darstellt. Dieser kann vor, aber auch nach demMeldedatum
liegen. Falls der Erkrankungsbeginn unbekannt ist, gilt dafür das Meldedatum.sumField
| optional | Default: AnzahlFall: Gibt an, welche Werte summiert und ausgegeben werden. Mögliche Werte sindAnzahlFall
,AnzahlTodesfall
undAnzahlGenesen
.group
| optional: Gibt an, nach welchem Feld aggregiert wird. Hinweis: Bis jetzt nur einzelne Felder wählbar, z.B.group=Geschlecht
. Fallsgroup=Regierungsbezirk
gesetzt ist, muss auch der Filterbundesland=Bayern
gesetzt seinfiletype
| optional | Default: json: Wählt das Ausgabeformat. Hinweis: Für Datawrapper wähleformat=csv
geschlecht
,altersgruppe
,altersgruppe2
,bundesland
,landkreis
,regierungsbezirk
| optional: Filtert die entsprechenden Felder. Mehrfachauswahl ist möglich, z.B. gibtbundesland=Bayern&geschlecht=M
die Anzahl der gemeldeten infizierten Männer in Bayern zurück. Mehrfachauswahl innerhalb der Felder ist auch möglich, z.B.landkreis=SK München,Sk Hamburg
. Hinweis:altersgruppe2
teilt die Personen in 5-Jahresgruppen ein.sumValue
| optional | Default: true: Tageswerte aufaddieren (Summe aller Gemeldeten bis zum jeweiligen Tag) oder nur die Fälle des jeweiligen Tages anzeigen. Nur wirksam beifiletype=csv
.newCases
| optional | Default: false: Sollen zusätzlich die neuen Fälle in den FeldernnewCases
undsumNewCases
ausgegeben werden. Neue Fälle sind alle, die nur in der aktuellen Publikation des RKI und keiner vorherigen enthalten sind. Hinweis:sumNewCases
macht nur für den aktuellen Tag Sinn.newCases
im Objekt gibt an, wievele der neuen Fälle dem Datum im Objekt zugeordnet sind.currentCases
| optional | Default: false: Wenntrue
, berechnet der Wrapper die Anzahl der Infizierten und Genesenen pro Tag und ergänzt die FeldercurrentlyInfected
,currentlyRecoverd
unddeathSum
, wobeideathSum
die Summe der Todesfälle bis zum jeweiligen Tag ist.
Allgemein Hinweise zur Verwendung der Parameter:
- Bei Mehrfachauswahl innerhalb eines Feldes sind die Werte mit
,
ohne Leerzeichen anzugeben. - Die Filter-Keys sind in Kleinbuchstaben anzugeben, z.B.
bundesland
. - Alle Werte sind ohne Anführungszeichen anzugeben.
- Die verschiedenen Filterfelder sind mit logischem
AND
verknüpft. Mehrfachauswahl innerhalb eines Feldes ist mitOR
verknüpft. - Abweichung der Schreibweise macht den Filter wirkungslos.
- Ergänzend zur Filterung ist es fast immer sinnvoll auch den Parameter
group
mit einem der Filterfelder zu besetzen.
Entwicklung der Fallzahlen für Deutschland nach Erkennungsdatum abfragen:
https://europe-west3-brdata-corona.cloudfunctions.net/rkiApi/query
?dateField=Refdatum
Entwicklung der Fallzahlen für Deutschland ab dem 12.03.2020 abfragen:
https://europe-west3-brdata-corona.cloudfunctions.net/rkiApi/query
?startDate=2020-03-12
Entwicklung der Fallzahlen für Bayern abfragen:
https://europe-west3-brdata-corona.cloudfunctions.net/rkiApi/query
?group=Bundesland
&bundesland=Bayern
Entwicklung der Fallzahlen für alle bayerischen Regierungsbezirke abfragen:
https://europe-west3-brdata-corona.cloudfunctions.net/rkiApi/query
?group=Regierungsbezirk
&bundesland=Bayern
Entwicklung der Fallzahlen für drei spezifische Regierungsbezirke (Mittelfranken, Oberfranken, Unterfranken) als CSV-Tabelle abfragen:
https://europe-west3-brdata-niels.cloudfunctions.net/rkiApi/query
?group=Regierungsbezirk
&bundesland=Bayern
®ierungsbezirk=Mittelfranken,Oberfranken,Unterfranken
&filetype=csv
Entwicklung der Fallzahlen für alle bayerischen Landkreise abfragen:
https://europe-west3-brdata-corona.cloudfunctions.net/rkiApi/query
?group=Landkreis
&bundesland=Bayern
Entwicklung der Fallzahlen für den Landkreis Tirschenreuth abfragen:
https://europe-west3-brdata-corona.cloudfunctions.net/rkiApi/query
?group=Landkreis
&bundesland=Bayern
&landkreis=LK Tirschenreuth
- Repository klonen
git clone https://...
- Erforderliche Module installieren
npm install
- Entwicklungsserver starten
npm watch
Um die Module installieren und die Entwicklerwerkzeuge nutzen zu können, muss vorher die JavaScript-Runtime Node.js installiert werden. Informationen für Entwickler finden sich weiter unten.
Diese Anleitung geht davon aus, dass bereits ein Google Cloud-Konto vorhanden und ein Rechnungskonto eingerichtet ist. Außerdem sollte das Google Cloud-Kommandzeilenwerkzeug installiert und mit einem Benutzerkonto verknüpft sein.
Neues Projekt mit der ID brdata-corona
erstellen. Der Parameter --name
ist optional.
$ gcloud projects create brdata-corona --name=30-BRData-corona
Das Projekt als aktuelles Arbeitsprojekt festlegen:
$ gcloud config set project brdata-corona
Google Cloud Function für das aktuelle Projekt aktivieren:
$ gcloud services enable cloudfunctions.googleapis.com
Rechenzentrum europe-west3 (Frankfurt) als Ziel für das Funktions-Deployment festlegen.
$ gcloud config set functions/region europe-west3
API-Funktion deployen: In diesem Beispiel wird der nicht authentifizierte Zugriff von außerhalb erlaubt, um den Datenaustausch zwischen API und beispielsweise einer Web-App zu ermöglichen:
$ gcloud functions deploy rkiApi --runtime=nodejs10 --trigger-http --allow-unauthenticated
Um das Skript index.js
lokal zu testen, verwendet man am besten das Google Functions Framework. Das Functions Framework kann mit dem Befehl npm run watch
gestartet werden. Das hat den Vorteil, dass das Skript jedes Mal neu geladen wird, sobald man Änderungen am Code vornimmt.
Man kann das Functions Framework aber auch manuell installieren und ausführen:
$ npm i -g @google-cloud/functions-framework
Funktion rkiApi starten:
$ functions-framework --target=rkiApi
API-Anfrage stellen (Beispiel):
$ curl -X GET 'localhost:8080/query?group=Landkreis&bundesland=Bayern'