Open/Close-Monitor/API
Für den Open/Close-Monitor gibt es eine minimale API über HTTP, um die maschinelle Verarbeitung zu erleichtern.
- Randbemerkung
- Ich (Daniel Bohrer) hatte damals™ eine eigene API für unsere minimalen Bedürfnisse entworfen. Später bin ich auf das Projekt SpaceAPI von Hackerspaces.nl gestoßen, das darauf abzielt, viele Hackerspaces mit einer möglichst konsistenten API ansprechen zu können (z. B. hier eine Beispielanwendung, benötigt JavaScript). Die JSON-Version unter http://status.stratum0.org/status.json implementiert daher beide APIs, die SpaceAPI sowie die hier beschriebene.
Inhaltsverzeichnis
Formate
Es stehen folgende Formate zur Verfügung:
-
JSON, über die URL http://status.stratum0.org/status.json
Beispiel:{ "version": "0.1", "isOpen": false, "since": "2012-01-30T03:54:38.804565" }
-
XML, über die URL http://status.stratum0.org/status.xml
Beispiel:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <status version="0.1"> <isOpen>false</isOpen> <since>2012-01-30T03:54:38.804565</since> </status>
-
Schlüssel-Wert-Paare nach RFC 822, über die URL http://status.stratum0.org/status.txt
Beispiel:Version: 0.1 IsOpen: false Since: 2012-01-30T03:54:38.804565
-
direkte Abfrage der PNG-Grafik, über die URL http://status.stratum0.org/status.png. Die Grafik zeigt den Öffnungsstatus in Form einer roten bzw. grünen Grafik mit Aufschrift “OPEN” bzw. “CLOSED” auf 200×50 Pixeln an.
Um eine hohe Last durch Anfragen zu vermeiden, wird der HTTP-Client über die HTTP-Header "Expires" und "Cache-Control" angewiesen, die Ergebnisse der Anfragen für 5 Minuten zwischenzuspeichern.
Alternativ ist die Abfrage auch über HTTPS möglich.
Datenfelder
Versionsnummer
Versionsnummer der API, mit der die Abfrage generiert wurde
- Datentyp
- String der Form ([0-9]+.){1-3}[0-9]+)
- JSON
- Attribut version
- XML
- Attribut version (CDATA) des Wurzelelementes <status>
- RFC822
- Feld Version
- Anmerkungen
- Die aktuelle Versionsnummer ist 0.1
Öffnungsstatus
Der aktuelle Öffnungsstatus des Hackerspace
- Datentyp
- Boolean
- true: Space is geöffnet
- false: Space ist geschlossen
- JSON
- Attribut isOpen
- XML
- Text-Inhalt (CDATA) des Elements <isOpen>
- RFC822
- Feld IsOpen
Änderungsdatum
Der Zeitpunkt, wann der Öffnungsstatus das letzte mal verändert wurde, in der lokalen Zeitzone (Europe/Berlin, MEZ/MESZ)
- Datentyp
- String mit Datum nach ISO 8601 (YYYY-MM-DDTHH:MM:SS.mmmmmm)
- JSON
- Attribut since
- XML
- Text-Inhalt (CDATA) des Elements <since>
- RFC822
- Feld Since