REST-API

REST-API steht für „Representational State Transfer - Application Programming Interface“. Sie macht den Austausch von Informationen möglich, wenn diese sich auf unterschiedlichen Systemen befinden. Im Zeitalter von Desktop-PCs und mobilen Geräten wie Tablets oder Smartphones trifft man oft auf solche unterschiedlichen Systeme, die den Einsatz von REST-API notwendig machen. Man spricht bei REST-API auch von der Maschine-Maschine-Kommunikation, da die verschiedenen Systeme und Geräte zusammengebracht werden und gewissermaßen die „gleiche Sprache“ sprechen. Dank REST-API ist es möglich, Informationen und Aufgaben auf verschiedene Server zu verteilen und mit Hilfe eines HTTP-Requests anzufordern. Der HTTP-Request setzt sich aus dem Endpoint und den entsprechenden Parametern zusammen[1].

Allgemeine Informationen zum Thema

Das REST-Paradigma ist auf Roy Fielding zurückzuführen, der 1994 das HTTP-Objekt-Model entwickelt hat. Die Idee dahinter war ein einheitliches Konzept, das über die Jahre weiterentwickelt wurde und im Jahr 2000 in Fieldings Dissertation gipfelte. Richtig durchgesetzt hat sich das Programmierparadigma „RESTful Application“ faktisch erst 2014. Bis dahin kam es zu zahlreichen fehlerhaften Umsetzungen[2].

Eine REST-API ist eine Programmierschnittstelle, die HTTP-Anfragen nutzt, um mittels PUT, GET, POST und DELETE auf Daten zuzugreifen. REST ist eine Programmierparadigma des Internets. Durch die Nutzungen von Clouds oder mobilen Geräten gibt es mittlerweile zahlreiche Programmierschnittstellen (APIs), deren Aufgabe darin besteht, Webdienste nutzbar zu machen. REST ist hier meist die erste Wahl, da sie das Verbinden mit Clouddiensten erlauben und die Interaktion gewährleisten. REST-APIs sind beispielsweise für Twitter, Amazon und Google eine Selbstverständlichkeit.

Bei der REST-API (oder auch RESTful-API) geht es darum, Transaktionen aufzuschlüsseln und anhand dieser eine Reihe kleiner Module zu erstellen. Für Entwickler ist das sowohl Erleichterung als auch Herausforderungen, denn die Modularität sollte von Anfang an berücksichtigt werden. Auf dem Markt gibt es unterschiedliche REST-API-Modelle, zu den bekanntesten und beliebtesten zählen Amazon Simple Storage (S3), Cloud Data Management Interface (CDMI) und Open Stack Swift. REST-APIs profitieren von der durch RFC 1626 definierten HTTP-Anfragemethode, wobei PUT verwendet wird, um den Zustand eines Objektes, einer Datei oder eines Blocks zu ändern oder auf den aktuellen Stand zu bringen. Das Erstellen einer Ressource erfolgt durch POST, das Abrufen durch GET und das Löschen mit DELETE[3].

REST-API und WordPress

Es hat bis Dezember 2015 gedauert, bis auch WordPress REST-API integriert hat. Bei der Community kam das zunächst nicht gut an, zumal WordPress fast gleichzeitig das neue AdminInterface vorgestellt wurde, das ausschließlich auf JavaScript gesetzt hat. Letztlich setzen sich aber die Vorteile von REST-API durch. Die Implementierung neuer Features wurde erleichtert, JavaScript bot weitere Plattformen wie AngularJS, Node.js, Backbone und React, was für das bisher in PHP programmierte WordPress-Backend relevant war.

Eine weitere Neuerung waren Desktop-Apps, die die Verwaltung von Blogs und Webseiten erleichtern sollten. Ohne zusätzliches Einloggen in das WordPress-Admin-Panel konnten Daten leichter bearbeitet, Kommentare moderiert und Remote Posts erstellt werden. Vereinfachungen stellte auch die Einführung von Mobile-Apps dar, die durch die Einbindung von REST-APIs mehr Komfort bei der Verwaltung von Seiten boten. Dank zahlreicher Vereinfachungen durch REST-API setzten sich die Vorteile bei WordPress durch, sodass die Bedienung ins gesamt leichter wurde[4].

Vier Formen von APIs

Wie bereits beschrieben, handelt es sich bei APIs (Application Programming Interface) um Schnittstellen, die der Kommunikation zwischen Systemen dienen. Unterschieden wird zwischen vier Formen von APIs:

  • Interne,
  • externe,
  • Plattform-APIs sowie
  • Authentifizierungs- und Autorisierungs-APIs.

Interne APIs kommen bei der Softwareentwicklung zum Einsatz, um Module und Komponenten abzugrenzen oder zu verbinden. Somit wird die Gesamtkomplexität reduziert und die Modularität gesteigert. Von extern APIs spricht man, wenn ganz allgemein die Rede von APIs ist. Sie können auch mit anderen externen APIs gemeinsam ausgeführt werden. Plattform-APIs beinhalten Schnittstellen für die Integration in andere Plattformen oder Webseiten. Dies ermöglicht das Entwickeln und Betreiben von Plug-Ins oder Applikationen.

Eine Sonderform sind APIs zur Authentifizierung und zur Autorisierung. Zu den bekanntesten Beispielen für Authentifizierungs-APIs gehören Google und Facebook Connect. Durch sie kann man sich den Aufbau eines eigenen User-Pools sparen, Nutzer können sich über andere Plattformen einloggen. Auf dem Gebiet der Autorisierungs-APIs hat der OAuth-Standard sich einen Namen gemacht. Über diesen können User festlegen, ob Daten an Dritte weitergegeben werden dürfen, beispielsweise indem eine externe Anwendung etwas über Twitter im Namen des Users twittern darf[5].

Bedeutung für die Programmierung

Unabhängig davon, ob man eine Software für internen oder externen Gebrauch schreibt, ist die Verwendung von REST-APIs heute nahezu unverzichtbar. Durch die Nutzung unterschiedlicher Geräte wie Desktop-PCs, Tablets oder Smartphones muss die Software verfügbar und konsumierbar sein. Eine REST-API stellt – unabhängig vom Client – Datenoperationen und Daten zur Verfügung und kann wie beschrieben meist mehr als nur die GET und POST-Methode. Sie dient auch dem Sorting, Paging oder Datashaping. Durch die Vielzahl an Möglichkeiten bietet die REST-API dem Kunden also individuelle Lösungen und ist für die heutige Programmierung unverzichtbar[6] .

Einzelnachweise

  1. Wordpress als Datenquelle t3n.de. Abgerufen am 05.04.2017
  2. Representational State Transfer wikipedia.org. Abgerufen am 05.04.2017
  3. Definition RESTful-API searchenterprisesoftware.de. Abgerufen am 05.04.2017
  4. Rest-api Wordpress Core Auswirkungen entwickler.de. Abgerufen am 05.04.2017
  5. Web APIs ein nicht technischer Erklarungsversuch gruenderszene.de. Abgerufen am 05.04.2017
  6. Eine Rest-API ist mehr als eine moderne Architektur für verteilte Systeme offering.solutions. Abgerufen am 05.04.2017

Weblinks