Informationen für Entwickler
Die COVID-19-Pandemie (Corona)
Fangen wir direkt mal mit dem aktuell wichtigten Thema an: Wir waren mitten in der Arbeit zu der aktuellen Software-Version, als die Pandemie langsam in Deutschland startete. Projektleiter Stefan Wintermeyer (@wintermeyer) hat selber schulpflichtige Kinder und deshalb es war ihm schnell klar, das hier "ready is better than perfect" wichtig ist. Wir haben einige Features, für die neue Version erst mal nach hinten gestellt und lassen sogar die alte Version auf dem Server noch parallel mitlaufen, um einige Abfragen nach dort zu pipen. Deshalb gibt es sowohl beim Layout (schon immer unsere Stärke gewesen ;-)), als auch bei den URLs einige Überlappungen. Wir wollten die neue Version so schnell wie möglich online bringen, weil wir mit dem neuen Datenbankmodell, die Schulschließungen wegen Corona relativ leicht anzeigen können.
Deshalb: Wir werden die nächsten Wochen weiter an der neuen Version arbeiten und wir freuen uns über Ihre Mithilfe!
Das Open-Source-Projekt
mehr-schulferien.de ist ein mit der Programmiersprache Elixir und dem Phoenix Framework geschriebenes Open-Source-Projekt (MIT Lizenz). Der Code wird auf https://github.com/mehr-schulferien-de/www.mehr-schulferien.de gehostet und dort findet die Entwicklungsarbeit statt.
Wir freuen uns über gute Feature-Requests und Bug-Reports! Idealerweise als Issues auf Github, aber auch gerne per E-Mail an Stefan Wintermeyer (sw@wintermeyer-consulting.de)
Die API
Alle Daten können per RESTful JSON-API abgerufen werden. Stück für Stück werden wir hierzu die Dokumentation erweitern. Hier schon mal die Basics.
locations
Das Model Locations wird für die Speicherung von Ländern (countries), Bundesländern (federal_states), Landkreisen (counties), Städten (cities) und Schulen (schools) benutzt. Die Dabei werden die einzelnen Ebenen mit einander verknüpft.
Beispiel
- Daten zu Deutschland abrufen:
curl -H "Content-Type: application/json" http://www.mehr-schulferien.de/api/v2.0/locations/1
- Daten zu allen Locations abrufen:
curl -H "Content-Type: application/json" http://www.mehr-schulferien.de/api/v2.0/locations
periods
Das Model Period wird zur Speicherung der einzelnen Ferien und Feiertage benutzt.
Beispiel
- Daten zum Eintrag mit der ID 23 abrufen:
curl -H "Content-Type: application/json" http://www.mehr-schulferien.de/api/v2.0/periods/23
- Daten zu allen Einträgen abrufen:
curl -H "Content-Type: application/json" http://www.mehr-schulferien.de/api/v2.0/periods
holiday_or_vacation_types
Das Model HolidayOrVacationType wird zur Speicherung der einzelnen Arten von Ferien und Feiertage benutzt.
Beispiel
- Daten zum Eintrag mit der ID 10 abrufen:
curl -H "Content-Type: application/json" http://www.mehr-schulferien.de/api/v2.0/holiday_or_vacation_types/10
- Daten zu allen Einträgen abrufen:
curl -H "Content-Type: application/json" http://www.mehr-schulferien.de/api/v2.0/holiday_or_vacation_types
Noch Wünsche an die API?
Mit der aktuellen API haben Sie Zugriff auf alle Daten, müssen diese aber noch selber verarbeiten. In Zukunft werden wir auch Anfragen wie "Ist heute ein Feiertag" per API beantworten. Wenn Sie dazu Wünsche oder Vorschläge haben, würden wir uns über ein entsprechendes Feature-Request-Issues auf Github freuen.