/* Raspberry pi Sammelbestellung 2013 */
[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 ;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.&nbsp;B. hier eine [http://hackerspaces.me/wall Beispielanwendung], benötigt JavaScript). Die JSON-Version unter <tt>http://status.stratum0.org/status.json</tt> implementiert daher beide APIs, die SpaceAPI sowie die hier beschriebene.
4
5 == Formate ==
6 Es stehen folgende Formate zur Verfügung:
7 <ul><li>
8 {{WP|JSON}}, über die URL <tt>http://status.stratum0.org/status.json</tt><br />
9 Beispiel:
10 <pre>
11 {
12 "version": "0.1",
13 "isOpen": false,
14 "since": "2012-01-30T03:54:38.804565"
15 }</pre>
16 </li><li>
17 {{WP|XML}}, über die URL <tt>http://status.stratum0.org/status.xml</tt><br />
18 Beispiel:
19 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
20 <status version="0.1">
21 <isOpen>false</isOpen>
22 <since>2012-01-30T03:54:38.804565</since>
23 </status>
24 </li><li>
25 Schlüssel-Wert-Paare nach RFC 822, über die URL <tt>http://status.stratum0.org/status.txt</tt><br />
26 Beispiel:
27 Version: 0.1
28 IsOpen: false
29 Since: 2012-01-30T03:54:38.804565
30 </li><li>
31 direkte Abfrage der PNG-Grafik, über die URL <tt>http://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.
32 </li></ul>
33
34 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.
35
36 Alternativ ist die Abfrage auch über HTTPS möglich.
37
38 == Datenfelder ==
39 === Versionsnummer ===
40 Versionsnummer der API, mit der die Abfrage generiert wurde
41 ;Datentyp: String der Form <tt>([0-9]+.){1-3}[0-9]+)</tt>
42 ;JSON: Attribut <tt>version</tt>
43 ;XML: Attribut <tt>version</tt> (CDATA) des Wurzelelementes <tt>&lt;status></tt>
44 ;RFC822: Feld <tt>Version</tt>
45 ;Anmerkungen: Die aktuelle Versionsnummer ist 0.1
46
47 === Öffnungsstatus ===
48 Der aktuelle Öffnungsstatus des Hackerspace
49 ;Datentyp: Boolean
50 :*<tt>''true''</tt>: Space is geöffnet
51 :*<tt>''false''</tt>: Space ist geschlossen
52 ;JSON: Attribut <tt>isOpen</tt>
53 ;XML: Text-Inhalt (CDATA) des Elements <tt>&lt;isOpen></tt>
54 ;RFC822: Feld <tt>IsOpen</tt>
55
56 === Änderungsdatum ===
57 Der Zeitpunkt, wann der Öffnungsstatus das letzte mal verändert wurde, in der lokalen Zeitzone (Europe/Berlin, {{WP|MEZ}}/{{WP|MESZ}})
58 ;Datentyp: String mit Datum nach ISO 8601 (''YYYY-MM-DDTHH:MM:SS.mmmmmm'')
59 ;JSON: Attribut <tt>since</tt>
60 ;XML: Text-Inhalt (CDATA) des Elements <tt>&lt;since></tt>
61 ;RFC822: Feld <tt>Since</tt>
62
63 [[Kategorie:Projekte]]
This page took 0.042443 seconds and 5 git commands to generate.