Für den [[Open/Close-Monitor]] gibt es eine minimale API über HTTP, um die maschinelle Verarbeitung zu erleichtern. {{Hinweis|Die in diesem Artikel beschriebene API wird auf lange Sicht nicht mehr fortgeführt, neuere Implementierungen sollten die SpaceAPI verwenden.}} ;Randbemerkung: Ich ([[Benutzer:Daniel Bohrer|Daniel Bohrer]]) hatte damals™ eine eigene API für unsere minimalen Bedürfnisse entworfen. Später bin ich auf das Projekt [http://hackerspaces.nl/spaceapi 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 [http://hackerspaces.me/wall Beispielanwendung], benötigt JavaScript). Die JSON-Version unter <tt>https://status.stratum0.org/status.json</tt> implementiert daher beide APIs, die SpaceAPI sowie die hier beschriebene. == Formate == Es stehen folgende Formate zur Verfügung: <ul><li> {{WP|JSON}}, über die URL <tt>https://status.stratum0.org/status.json</tt><br /> Beispiel: <pre> { "version": "0.1", "isOpen": false, "since": "2012-01-30T03:54:38.804565" }</pre> </li><li> {{WP|XML}}, über die URL <tt>https://status.stratum0.org/status.xml</tt><br /> 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> </li><li> Schlüssel-Wert-Paare nach RFC 822, über die URL <tt>https://status.stratum0.org/status.txt</tt><br /> Beispiel: Version: 0.1 IsOpen: false Since: 2012-01-30T03:54:38.804565 </li><li> direkte Abfrage der PNG-Grafik, über die URL <tt>https://status.stratum0.org/status.png</tt>. Die Grafik zeigt den Öffnungsstatus in Form einer roten bzw. grünen Grafik mit Aufschrift “OPEN†bzw. “CLOSED†auf 200×50 Pixeln an. </li></ul> 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 <tt>([0-9]+.){1-3}[0-9]+)</tt> ;JSON: Attribut <tt>version</tt> ;XML: Attribut <tt>version</tt> (CDATA) des Wurzelelementes <tt><status></tt> ;RFC822: Feld <tt>Version</tt> ;Anmerkungen: Die aktuelle Versionsnummer ist 0.1 === Öffnungsstatus === Der aktuelle Öffnungsstatus des Hackerspace ;Datentyp: Boolean :*<tt>''true''</tt>: Space is geöffnet :*<tt>''false''</tt>: Space ist geschlossen ;JSON: Attribut <tt>isOpen</tt> ;XML: Text-Inhalt (CDATA) des Elements <tt><isOpen></tt> ;RFC822: Feld <tt>IsOpen</tt> === Änderungsdatum === Der Zeitpunkt, wann der Öffnungsstatus das letzte mal verändert wurde, in der lokalen Zeitzone (Europe/Berlin, {{WP|MEZ}}/{{WP|MESZ}}) ;Datentyp: String mit Datum nach ISO 8601 (''YYYY-MM-DDTHH:MM:SS.mmmmmm'') ;JSON: Attribut <tt>since</tt> ;XML: Text-Inhalt (CDATA) des Elements <tt><since></tt> ;RFC822: Feld <tt>Since</tt> [[Kategorie:Projekte]]