Was ist eine REST API?
API (Application Programming Interface) ist eine Programierschnittstelle, welche Soft- und Hardwarekomponenten, beispielsweise Anwendungen, Festplatten oder Benutzeroberflächen, miteinander verbindet. Mit REST ist aber nicht etwa Ausruhen gemeint, sondern Representational State Transfer. Dies bezeichnet die Art, wie verteilte Systeme miteinander kommunizieren können. Bahnhof verstanden?
Deshalb eine einfache Visualisierung dazu:
Die API ist also eine spezifische Schnittstelle, über welche die Entwickler vorgefertigte Blöcke und Funktionen zur Erstellung ihres Softwareprodukts verwenden können.
Mit anderen Worten: API in der Programmierung ist ein vorgefertigter Code, der dem Programmierer die Entwicklung einer Anwendung vereinfacht. Mit seiner Hilfe wird die Erstellung eines neuen Produktes stark vereinfacht. Im Beispiel einer Restaurantbestellung würde die API die Stelle des/der Serviceangestellten übernehmen.
Der als REST (oder auch ReST) bezeichnete Architekturansatz beschreibt dabei, wie verteilte Systeme miteinander kommunizieren können. REST ist eine einfache Möglichkeit, Daten zwischen Client und Server zu senden und zu empfangen, wobei nur wenige Standards definiert sind. Es ist dabei möglich die Daten als JSON, XML oder als Plain-Text zu senden und zu empfangen. Alternativen zu einer REST API sind z.B. SOAP oder WSDL.
Was ist Node.JS?
Natürlich muss diese API irgendwo programmiert werden. Dazu habe ich die Open Source-Serverumgebung Node.js verwendet. Die Laufzeitumgebung läuft dabei auf diversen Betriebssystemen und verwendet JavaScript auf dem Server.
Node.js wird dabei oft mit PHP verglichen und wurde bereits als potentieller Nachfolger davon gehandelt. Der grosse Vorteil gegenüber PHP ist, dass es asynchron läuft und nicht jede Anfrage nacheinander abarbeitet, sondern dies zeitgleich macht. Es eliminiert daher das Warten und fährt einfach mit der nächsten Anfrage fort. Des Weiteren ist es «leichtgewichtig» gebaut und sehr effizient in der Datenverarbeitung.
runningMate Web-App
Für die Umsetzung hatte ich die Idee, eine Web-App für Einsteiger bis ambitionierte Läufer zu programmieren, welche es ermöglicht, sich im näheren Umkreis zu finden und ein gemeinsames Training zu vereinbaren.
Die von mir umgesetzte und ausschliesslich für mobile Endgeräte verfügbare Web-App findest du hier. Den Source-Code für die Web-Applikation sowie die API habe ich auf GitHub veröffentlicht.
(sba)