REST-API

Wechseln zu: Navigation, Suche
REST-API
Rest-api.jpg
Zustandslose API, die Infos rund um den Hickerspace bereitstellt.
Status Läuft
OrganisatorIn Basti
InteressentInnen
Version 0.52
Download:

Download (extern)

Die Hicker-REST-API stellt einige Informationen über Wiki, Multi-User-Chat, Raum, Mate-O-Meter und Ampel zur Verfügung. Außerdem können Nachrichten per Audio-Durchsage und LED-Ticker wiedergegeben werden. Sie ist in Python (mit Flask) geschrieben und läuft auf einem gunicorn-Server.

Das Ausgabeformat ist momentan auf JSON beschränkt. Die schreibenden Methoden benötigen API-User und API-Key zur Authentifizierung (Nachricht an Basti).


GET /api/info/ bzw. /api/room_extended/

Stellt allgemeine Informationen (inkl. Raumstatus) zur Verfügung. API Version 0.12. Dokumentation hier und hier.



GET /api/room/

Gibt den aktuellen Raumstatus und den Zeitpunkt der letzten Änderung zurück.

Rückgabewerte: NameTypBeschreibung
roomStatus string Raumstatus (open/closed)
since integer Unix Timestamp der letzten Aktualisierung


GET /api/muc/

Stellt Informationen über den Multi-User Chat zur Verfügung (Aktualisierungsintervall: 2 Minuten).

Rückgabewerte: NameTypBeschreibung
botOnline boolean Status des Hickerbots
mucUsers integer Anzahl der Nutzer im Multi-User Chat (ohne den Hickerbot)
lastUpdate integer Unix Timestamp der letzten Aktualisierung


GET /api/mate-o-meter/

Gibt unseren aktuellen Matevorrat zurück (Aktualisierungsintervall: 5 Minuten).

Rückgabewerte: NameTypBeschreibung
bottles integer Anzahl der Flaschen in der Kiste (0-20)
lastUpdate integer Unix Timestamp der letzten Aktualisierung
lastMeasurement integer Unix Timestamp der letzten Messung


GET /api/ampel/

Gibt den aktuellen Status unserer Ampel zurück.

Rückgabewerte: NameTypBeschreibung
red boolean Status der roten Lampe (beim "mode" random immer false)
yellow boolean Status der gelben Lampe (beim "mode" random immer false)
green boolean Status der grünen Lampe (beim "mode" random immer false)
mode string Ampelmodus (all off/all on/red/yellow/green/random/traffic light)
lastUpdate integer Unix Timestamp der letzten Aktualisierung


GET /api/poll/ampel/

Gibt den aktuellen Status unserer Ampel nach dem Long-Polling-Prinzip zurück (Timeout: 120 Sekunden).

Rückgabewerte: NameTypBeschreibung
red boolean Status der roten Lampe (beim "mode" random immer false)
yellow boolean Status der gelben Lampe (beim "mode" random immer false)
green boolean Status der grünen Lampe (beim "mode" random immer false)
mode string Ampelmodus (all off/all on/red/yellow/green/random/traffic light)
lastUpdate integer Unix Timestamp der letzten Aktualisierung

Wiki-Informationen

GET /api/wiki/new/

Neueste Wiki-Artikel in Listenform.

Rückgabewerte: NameTypBeschreibung
title string Titel des Wiki-Artikels
author string Name des Autors
description string HTML-Link zum Artikel kombiniert mit dem Autor
link string Link zum Artikel
pubDate string Datum und Uhrzeit des Erstellungszeitpunkts
timestamp integer UNIX-Timestamp des Erstellungszeitpunkts


GET /api/wiki/updated/

Zuletzt aktualisierte Wiki-Artikel in Listenform.

Rückgabewerte: NameTypBeschreibung
title string Titel des Wiki-Artikels
author string Name des Autors
description string HTML-Link zum Artikel kombiniert mit dem Autor
link string Link zum Artikel
pubDate string Datum und Uhrzeit des Erstellungszeitpunkts
timestamp integer UNIX-Timestamp des Erstellungszeitpunkts


GET /api/wiki/userspace/

Zuletzt erstellte oder aktualisierte Wiki-Artikel im Userspace in Listenform.

Rückgabewerte: NameTypBeschreibung
title string Titel des Wiki-Artikels
author string Name des Autors
description string HTML-Link zum Artikel kombiniert mit dem Autor
link string Link zum Artikel
pubDate string Datum und Uhrzeit des Erstellungszeitpunkts
timestamp integer UNIX-Timestamp des Erstellungszeitpunkts

Schreibende Methoden

POST /api/announce/ (Authentifizierung erforderlich)

Sendet (bei offenem Raum) eine Audio-Durchsage mit gegebenem Inhalt.

Parameter: NameTypBeschreibung
text string Durchzusagender Text
lang string Sprache des Textes (de oder en)
Rückgabewerte: NameTypBeschreibung
success boolean Erfolgsstatus
status string Fehlermeldung (nicht zwingend und nur wenn success false)


POST /api/ledticker/ (Authentifizierung erforderlich)

Sendet (bei offenem Raum) eine Nachricht an unseren LED-Ticker.

Parameter: NameTypBeschreibung
text string Anzuzeigender Text
lowpriority boolean Wenn true und Nachrichten in der Warteschlange kann diese Nachricht ignoriert werden (standardmäßig false)
Rückgabewerte: NameTypBeschreibung
success boolean Erfolgsstatus
status string Fehlermeldung (nicht zwingend und nur wenn success false)