API oder Application Programming Interface stellt Funktionen und Regeln dar, die die Interaktion und Kommunikation zwischen verschiedenen Anwendungen ermöglichen. Diese Schnittstellen erleichtern die Anwendungsintegration und ermöglichen es Entwicklern, leistungsstarke digitale Produkte zu erstellen.
Die API vermittelt zwischen Anwendungen über Anfragen und Antworten. Die Registrierung in der Anwendung über das bestehende Twitter-Konto des Benutzers erfolgt beispielsweise über die Twitter-API, die Entwickler in die App integriert haben. Die API verwendet verschiedene Protokolle und Architekturen zum Senden von Anfragen und Antworten:
- XML-RPC — ermöglicht den Austausch von Funktionen zwischen Netzwerken. XML-RPC verwendet XML, um Antworten/Anforderungen und HTTP-Protokolle für die Informationsübertragung vom Client zum Server zu beschreiben.
- JSON-RPC ist ein leichtgewichtiger RPC, ähnlich wie XML. Hier ist das Protokoll in JSON codiert; Es ermöglicht den Empfang von Anrufen an den Server mit asynchronen Antworten.
- SOAP – ein einfaches Objektzugriffsprotokoll zum Austausch strukturierter Informationen bei der Implementierung von Webdiensten in Computernetzwerken. SOAP verwendet XML für die Authentifizierung, Autorisierung und Prozesskommunikation auf Betriebssystemen. Es ermöglicht Clients, Webdienste anzurufen und Antworten unabhängig von Plattform und Sprache zu erhalten.
- REST API (Representative State Transfer) – ein Architekturstil, der Client-Server-Implementierungen unabhängig voneinander verwendet. REST verwendet das HTTP-Protokoll für die Kommunikation.
In diesem Beitrag konzentrieren wir uns auf die REST-API, definieren sie und analysieren, wie sie sich von anderen APIs unterscheidet.
REST-API definieren
REST ist ein Architekturstil zum Entwerfen von APIs über das HTTP-Protokoll. Sein Hauptvorteil ist seine große Flexibilität.
Entwickler verwenden die REST-API überall dort, wo Daten für den Benutzer einer Webanwendung oder Website direkt vom Server bereitgestellt werden müssen. Die Hauptkomponenten der REST-API:
- Klient — ein Client oder Programm, das auf der Seite des Benutzers (auf seinem Gerät) gestartet wird und die Kommunikation einleitet.
- Server — ein Server, der APIs als Zugriff auf seine Funktionen und Daten verwendet.
- Ressource — alle Inhalte (Video, Text, Bild), die der Server an den Client übermittelt.
Funktionsweise der REST-API
Die REST-API kommuniziert über HTTP-Anforderungen und führt die folgenden Funktionen aus – Erstellen, Lesen, Aktualisieren und Löschen von Daten. Sie werden auch als CRUD-Operationen bezeichnet. REST stellt die Informationen über angeforderte Ressourcen bereit und verwendet vier Methoden, um zu beschreiben, was mit einer Ressource zu tun ist:
POST — Erstellen einer Ressource;
GET — Abrufen einer Ressource;
PUT – Aktualisieren einer Ressource;
DELETE — Löschen einer Ressource.
Ressource
Eine Ressource ist ein kritisches Konzept in der REST-API, einer Informationsabstraktion. Das können beliebige Informationen sein: Dokument, Bild, vorübergehender Dienst.
Der Status der Ressource zu einem bestimmten Zeitpunkt wird als Ressourcendarstellung bezeichnet, die aus Daten, Metadaten, die die Daten beschreiben, und Hypermedia-Links besteht, um Kunden zu helfen, zum nächsten Status zu wechseln.
Die Informationen können in verschiedenen Formaten an den Client geliefert werden: JSON, HTML, XLT, Python oder Klartext. Das beliebteste und am häufigsten verwendete ist JSON, da es für Menschen und Maschinen lesbar und sprachunabhängig ist.
Um auf eine Ressource zuzugreifen, muss ein Client eine Anfrage stellen. Nach Erhalt generiert der Server eine Antwort mit verschlüsselten Daten über eine Ressource.
Die Anforderungsstruktur umfasst vier Hauptkomponenten: die HTTP-Methode (CRUD, die wir bereits erwähnt haben), Endpunkte, Header und Body.
Die HTTP-Methode beschreibt, was mit der Ressource geschehen soll. Gleich oben haben wir vier verfügbare Methoden erwähnt: POST, GET, PUT, DELETE.
Der Endpunkt enthält einen URI – Uniform Resource Identifier, der angibt, wie und wo die Ressource gefunden werden kann. Eine URL oder Uniform Resource Location ist der häufigste URI-Typ, der eine vollständige Webadresse darstellt.
Header enthalten die Daten, die sich auf den Client und den Server beziehen. Header enthalten Authentifizierungsdaten: API-Schlüssel, Name, IP-Adresse, die zu dem Computer gehören, auf dem der Server installiert ist, sowie die Informationen über das Antwortformat.
Der Körper wird verwendet, um zusätzliche Informationen an den Server zu senden, z. B. Daten, die Sie hinzufügen möchten.
REST-API-Prinzipien
REST ist nicht an eine bestimmte Technologie oder Plattform gebunden. Es ist sprachunabhängig. Es gibt auch nicht genau an, wie die API erstellt werden soll. Aber es verwendet sechs architektonische Einschränkungen. Die Schnittstelle kann als gültige REST-API bezeichnet werden, wenn diese Einschränkungen eingehalten werden. Sie beschreiben, wie der Server Anfragen verarbeitet und darauf antwortet.
Kundenserver
Die REST-API implementiert einen Client-Server-Architekturstil. Der Client sendet Anforderungen für Ressourcen und ist nicht mit der Datenspeicherung verbunden. Die Datenspeicherung verbleibt innerhalb des Servers. Server sind nicht an der Kommunikation mit der Benutzeroberfläche beteiligt. Der Client und der Server entwickeln sich voneinander abhängig. Dieser Faktor macht REST noch flexibler und skalierbarer.
Einheitliche Oberfläche
Die einheitliche Schnittstelle ist ein wesentliches Unterscheidungsmerkmal der REST API. Es besagt, dass es eine einzige Möglichkeit gibt, mit dem Server zu kommunizieren, ohne die Art der Anwendung und des Geräts zu implizieren.
Die einheitliche Schnittstelle hat vier Prinzipien:
- Identifizierung von Ressourcen. Jede Ressource muss eine Identifikation haben, die unabhängig vom Status der Ressource ist. Die URL fungiert als Identifikator.
- Manipulation von Ressourcen durch Repräsentationen. Eine Ressourcendarstellung (die der Client hat) enthält die Daten, die zum Löschen oder Ändern der Ressource erforderlich sind. Der Client sendet eine Darstellung, die der Server (ein JSON-Objekt) ändern, entfernen oder hinzufügen muss.
- Selbstbeschreibende Nachrichten. Solche Nachrichten haben alle Informationen für den Empfänger zum Verständnis. Es sind keine zusätzlichen Informationen in separaten Dokumentationen oder Meldungen erforderlich. Jede Nachricht enthält genügend Informationen, damit der Server die Anforderung analysieren kann.
- Hypermedia als Motor des Anwendungszustands. Hypermedia erfordert die Verwendung von Links für jede Antwort, damit der Client andere Ressourcen finden kann. In REST werden Hypermedia für alle Interaktionen verwendet.
Staatenlos
Das bedeutet, dass der Server keine Daten über den Client enthält. Alle für die Anfragebearbeitung notwendigen Informationen sind in der Anfrage enthalten. Der Client speichert alle Sitzungsinformationen.
Cachefähig
Jede Antwort muss Informationen enthalten, die angeben, ob sie zwischengespeichert werden kann oder nicht, und den Zeitraum, in dem die Antwort zwischengespeichert werden kann. Wenn sie zwischengespeichert werden können, kann der Client bei ähnlichen Anforderungen dieselben Daten verwenden, ohne wiederholt Anforderungen an den Server zu senden. Es trägt zur Verbesserung der Leistung und Verfügbarkeit bei.
Schichtensystem
REST implementiert die Ebenenhierarchie, die bestimmte Einschränkungen für das Verhalten von Komponenten schafft. In einem Schichtsystem können Komponenten nur die Komponenten sehen, die sich auf den nächsten Ebenen befinden und mit denen sie interagieren.
Code auf Anfrage
Es ist eine optionale Funktion, die es Clients ermöglicht, Code herunterzuladen und auszuführen.
Was unterscheidet die REST-API?
Die sechs Prinzipien der REST-API können als Hauptunterschiede zwischen dieser Schnittstelle und anderen Typen angesehen werden. Darüber hinaus zeichnen mehrere Parameter REST aus.
Erstens bestimmt das Wesen von REST seine Inkompatibilität mit anderen Typen. Es ist ein Architekturstil, bei dem eine Architektur eine Reihe von Anforderungen darstellt, die Sie befolgen müssen, um einen RESTful-Webdienst bereitzustellen. Beispielsweise sind SOAP und RPC Messaging-Protokolle, die Nachrichten beschreiben. Im Gegensatz zum Architekturstil, der nur die Anforderungen (Constraints) vorgibt, die die Botschaft erfüllen muss.
Struktur
Normalerweise folgt API dem App-to-App-Format, während REST einer anderen Struktur folgt – Client-Server. Der Client und der Server entwickeln sich unabhängig voneinander und bieten mehr Flexibilität bei der Arbeit.
Nachrichtenaustauschformat
APIs verwenden normalerweise bestimmte Nachrichtenformate; Beispielsweise verwendet SOAP XML. REST folgt keinem so strengen Prinzip. Es kann fast jedes Format zum Datenaustausch verwenden. JSON ist jedoch jetzt das beliebteste.
Es gibt offensichtliche Gründe für die Popularität von JSON – es ist ein für Menschen lesbares und einfach zu analysierendes Datenaustauschformat. JSON ist sprachunabhängig und Sie können es mit jeder Sprache außer JavaScript verwenden.
Flexibilität
REST ist ein flexibler Architekturstil, daher wird er häufig von Entwicklern verwendet. Verglichen mit SOAP – einem komplexeren Protokoll mit erweiterten Sicherheitsfunktionen, das mehr Bandbreite erfordert – besteht REST aus einfachen Richtlinien, die es Entwicklern ermöglichen, diese Anforderungen in ihrem Format zu verwenden. Die Architektur bietet eine hohe Leistung und ist daher besonders für mobile Geräte gefragt, bei denen es auf Download-Geschwindigkeit ankommt.
Wie wir sehen, hat REST gegenüber anderen bekannten APIs gewisse Vorteile. Deshalb haben alle führenden Unternehmen wie Twitter und Google es für ihre Produkte implementiert. Schließlich ist es der ideale und einfache Weg, um Daten an Entwickler auf der ganzen Welt zu übertragen, und ein bewährter Mechanismus, um effiziente und skalierbare Schnittstellen für die Softwareentwicklung zu erstellen.