Öffentliche Einrichtungen, Newsportale, E-Commerce oder Finanzdienstleister – digitale Anwendungen in allen Bereichen können heute nicht mehr auf Programmierschnittstellen wie RESTful APIs verzichten. Weil APIs einen allgemein akzeptierten, einfachen und robusten Standard bieten, um Systeme skalierbar und in Echtzeit zu vernetzen, kommt Schnittstellen eine immer größere Bedeutung zu.
API steht für „Application Programming Interface“, zu Deutsch „Programmierschnittstelle“, und lässt sich als eine Art Vermittler zwischen zwei Maschinen vorstellen. Auch wenn APIs prinzipiell nicht auf den Einsatz im Internet beschränkt sind, kommen Schnittstellen in der Praxis am häufigsten dort zum Einsatz, wo ein Webdienst den Austausch mit anderen Webdiensten ermöglichen möchte.
Eine RESTful API bezeichnet eine nach einem bestimmten Paradigma programmierte Schnittstelle. In Abgrenzung zu anderen API-Formaten wie SOAP gehört REST („Representational State Transfer“) zu den Softwarearchitekturen mit dem größten Gestaltungsspielraum und ist daher am weitesten verbreitet.
Der Erfolg des im Jahr 2000 vorgestellten REST beruht neben der weniger strikt vorgegeben Struktur auch darin, dass in der Architektur des World Wide Web bereits ein Großteil der nötigen Infrastruktur (z. B. Web- und Application-Server, HTTP-fähige Clients, HTML- und XML-Parser) vorhanden ist. Diese Vorteile machen die meisten Webdienste grundsätzlich mit REST APIs kompatibel.
Ein Beispiel für eine REST API ist die Schnittstelle von Twitter. So lässt sich die Schnittstelle etwa mit einer Website verbinden, um die neuesten Tweets auszuspielen. Nutzer der Website könnten in einem entsprechenden Feld eine Suchanfrage oder ein Hash-Tag eingeben, anschließend gibt Twitter die Ergebnisse im JSON-Format zurück.
Andere bekannte Webservices mit REST APIs sind Facebook, Dropbox oder Ebay.
Wie eine RESTful API genau funktioniert und in welchem Format auf Seiten des Anbieters Daten bereitgestellt werden, beschreibt eine dazugehörige API-Dokumentation. Die Dokumentation enthält Informationen über die sicherheitsrelevante Authentifizierung des anwendenden Services, aber auch in welchem Format Requests bzw. Response strukturiert sein müssen oder wie Fehler ausgegeben werden.