/* Mitgliederverwaltung */
[stratum0-wiki.git] / Open%2FClose-Monitor%2FAPI.mw
1 Für den [[Open/Close-Monitor]] gibt es eine minimale API über HTTP, um die maschinelle Verarbeitung zu erleichtern.
2
3 {{Hinweis|Die in diesem Artikel beschriebene API wird auf lange Sicht nicht mehr fortgeführt, neuere Implementierungen sollten die [https://spaceapi.io/ SpaceAPI] verwenden.}}
4 ;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 [https://spaceapi.io/ SpaceAPI] von Hackerspaces.nl gestoßen, das darauf abzielt, viele Hackerspaces mit einer möglichst konsistenten API ansprechen zu können (z.&nbsp;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.
5
6 == Formate ==
7 Es stehen folgende Formate zur Verfügung:
8 <ul><li>
9 {{WP|JSON}}, über die URL <tt>https://status.stratum0.org/status.json</tt><br />
10 Beispiel:
11 <pre>
12 {
13 "version": "0.1",
14 "isOpen": false,
15 "since": "2012-01-30T03:54:38.804565"
16 }</pre>
17 </li><li>
18 {{WP|XML}}, über die URL <tt>https://status.stratum0.org/status.xml</tt><br />
19 Beispiel:
20 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
21 <status version="0.1">
22 <isOpen>false</isOpen>
23 <since>2012-01-30T03:54:38.804565</since>
24 </status>
25 </li><li>
26 Schlüssel-Wert-Paare nach RFC 822, über die URL <tt>https://status.stratum0.org/status.txt</tt><br />
27 Beispiel:
28 Version: 0.1
29 IsOpen: false
30 Since: 2012-01-30T03:54:38.804565
31 </li><li>
32 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.
33 </li></ul>
34
35 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.
36
37 Alternativ ist die Abfrage auch über HTTPS möglich.
38
39 == Datenfelder ==
40 === Versionsnummer ===
41 Versionsnummer der API, mit der die Abfrage generiert wurde
42 ;Datentyp: String der Form <tt>([0-9]+.){1-3}[0-9]+)</tt>
43 ;JSON: Attribut <tt>version</tt>
44 ;XML: Attribut <tt>version</tt> (CDATA) des Wurzelelementes <tt>&lt;status></tt>
45 ;RFC822: Feld <tt>Version</tt>
46 ;Anmerkungen: Die aktuelle Versionsnummer ist 0.1
47
48 === Öffnungsstatus ===
49 Der aktuelle Öffnungsstatus des Hackerspace
50 ;Datentyp: Boolean
51 :*<tt>''true''</tt>: Space is geöffnet
52 :*<tt>''false''</tt>: Space ist geschlossen
53 ;JSON: Attribut <tt>isOpen</tt>
54 ;XML: Text-Inhalt (CDATA) des Elements <tt>&lt;isOpen></tt>
55 ;RFC822: Feld <tt>IsOpen</tt>
56
57 === Änderungsdatum ===
58 Der Zeitpunkt, wann der Öffnungsstatus das letzte mal verändert wurde, in der lokalen Zeitzone (Europe/Berlin, {{WP|MEZ}}/{{WP|MESZ}})
59 ;Datentyp: String mit Datum nach ISO 8601 (''YYYY-MM-DDTHH:MM:SS.mmmmmm'')
60 ;JSON: Attribut <tt>since</tt>
61 ;XML: Text-Inhalt (CDATA) des Elements <tt>&lt;since></tt>
62 ;RFC822: Feld <tt>Since</tt>
63
64 [[Kategorie:Projekte]]
This page took 0.048419 seconds and 5 git commands to generate.