Heutzutage sind Web- und mobile Anwendungen in unserem Alltag allgegenwärtig. Unternehmen sind ständig auf der Suche nach Möglichkeiten, die Benutzererfahrung und die Leistung ihrer Anwendungen zu verbessern. Hier kommen die REST-APIs (API für Application Programming Interface und REST für REpresentational State Transfer) ins Spiel.
REST-APIs sind Programmierschnittstellen, die die Kommunikation zwischen verschiedenen Anwendungen, Systemen und Webdiensten ermöglichen. Sie sind zu einem wesentlichen Bestandteil der modernen Anwendungsentwicklung geworden und werden in vielen Bereichen eingesetzt.
Ohne darauf zu achten, interagierst du jeden Tag mit ihnen: Denn egal, ob du online ein Essen bestellst, den Inhalt deiner Lieblings-Streaming-Plattform erkundest oder ein Foto in einem sozialen Netzwerk teilst, du interagierst mit einer Rest API
In diesem Artikel werden wir uns genauer ansehen, was Rest APIs sind und wie sie funktionieren.
💡Auch interessant:
FastAPI |
API Was ist das? |
API mit Python Datenbank verbinden |
Web Scraping Anwendungen |
API erstellen |
API Programmierung mit Python Flask |
Selenium Python Case Study |
Funktionsprinzipien von Rest API
Roy Fielding war der erste, der im Jahr 2000 die Prinzipien der REST-Architektur definierte. Sie basiert auf den folgenden Hauptpfeilern:
Prinzip | Beschreibung |
---|---|
Client-Server | Client-Server-Architektur, bei der der Client eine Anfrage an den Server sendet und auf dessen Antwort wartet. Der Server verarbeitet die Anfrage und sendet die Antwort an den Client. |
Abwesenheit eines Zustands | Die APIs speichern den Status der Sitzung nicht auf der Serverseite. Daher wird jede Anfrage unabhängig verarbeitet. |
Caching | Antworten können zwischengespeichert werden, wodurch einige Client-Server-Interaktionen entfallen und die Skalierbarkeit und Leistung des Systems verbessert wird. |
Sichere Transportschicht | Das sichere HTTPS-Protokoll kann verwendet werden, um die Sicherheit der zwischen Client und Server übertragenen Daten zu gewährleisten |
Code auf Anfrage | Server können die Funktionalität eines Clients vorübergehend erweitern oder ändern, indem sie ausführbaren Code an den Client übertragen |
Einheitliche Oberfläche | Um eine einheitliche Anwendung zu erreichen, werden die folgenden Schnittstellenbeschränkungen verwendet:
|
Rest API: Was ist CRUD und was hat es damit zu tun ?
Das CRUD-Prinzip ist eine Methode, die darauf abzielt, die grundlegenden Operationen zu beschreiben, die man mit Daten aus einer Datenbank oder einer API durchführen kann.
Der Begriff CRUD ist ein Akronym für Create, Read, Update & Delete. Sehen wir uns nun an, was jeder dieser Begriffe bedeutet:
- Create, für „Erstellen“, ist das Hinzufügen neuer Daten zur Datenquelle. Bei einer Anwendung zur Verwaltung von Kontakten bedeutet Create beispielsweise, dass ein neuer Kontakt mit seinen Informationen (Name, E-Mail, Telefon usw.) hinzugefügt wird.
- Read, für „Lesen“, ermöglicht es, die vorhandenen Daten aus der Datenquelle abzurufen. Auch in unserer Kontaktverwaltungsanwendung ermöglicht das Lesen dem Nutzer, die Details der gespeicherten Kontakte einzusehen.
- Update, für „Aktualisierung“, ermöglicht es, die vorhandenen Daten zu ändern. Wenn wir das gleiche Beispiel beibehalten, kann der Nutzer die Telefonnummer eines bestehenden Kontakts ändern.
- Delete, für „Löschen“, ermöglicht es dir, bestehende Daten zu löschen. Der Nutzer kann so einen Kontakt aus seiner Kontaktliste entfernen.
Anatomie einer Abfrage
Eine Abfrage besteht aus folgenden Elementen:
Eine Methode kann als ein Verb definiert werden, das festlegt, was du von deiner Anfrage erwartest, gemäß den oben beschriebenen CRUD-Prinzipien. Die häufigsten Methoden sind :
- GET: Der Server antwortet auf deine Anfrage, indem er dir die gewünschten Daten anzeigt. Dabei handelt es sich um die Read-Operation.
- POST: Der Server erstellt einen neuen Eintrag in der Datenbank und benachrichtigt dich über das Ergebnis. Diese Methode führt eine Create-Operation aus.
- PUT / PATCH: Diese beiden Methoden aktualisieren einen Eintrag in der Datenbank und benachrichtigen dich über das Ergebnis. Sie führen eine Update-Operation durch.
- DELETE: Sie löscht einen Eintrag in der Datenbank und teilt dir das Ergebnis mit. Diese Methode führt eine Delete-Operation durch
Es gibt noch weitere, die aber viel seltener verwendet werden: HEAD, CONNECT, OPTIONS und TRACE.
Die Basis-URL oder Abfrageadresse ist die Adresse, die du für den Zugriff auf die API verwenden möchtest.
Der Endpunkt (endpoint), gibt an, wo sich die Daten befinden, mit denen du interagieren möchtest.
Abfragen sind eine Reihe von Angaben, die bezeichnen, was du erhalten möchtest, in Form von Schlüssel-Wert, verbunden durch &, und eingeleitet durch ?
Wir haben gerade gesehen, woraus eine Abfrage besteht. Es gibt noch zwei wichtige Elemente:
Die Kopfzeilen (headers), die verwendet werden, um dem Client und dem Server zusätzliche Informationen zu geben. Es gibt viele Header-Parameter, deren vollständige Liste auf der Mozilla-Website zu finden ist. Sie liegen immer in der Schlüssel-Wert-Form vor.
Der Körper der Abfrage (body) ist das Ergebnis, das vom Server an dich zurückgeschickt wurde. Dieses Ergebnis enthält auch einen Returncode, der dich darüber informiert, ob die Anfrage erfolgreich war oder nicht. Die Codes 2XX stehen für einen Erfolg, die Codes 4XX und 5XX für einen Fehler (z. B. 400 für eine ungültige Anfrage, 404 für eine nicht gefundene Ressource, 501 für einen Authentifizierungsfehler usw.). Schließlich weisen die Codes 3XX auf eine URL-Weiterleitung hin.
Rest API Authentifizierung
Ein REST-Webdienst muss in der Lage sein, Anfragen zu authentifizieren, bevor er eine Antwort senden kann. Durch diese Authentifizierung wird die Identität der Person, die die Anfrage stellt, überprüft.
Die gängigsten Authentifizierungsmethoden sind die folgenden:
- Grundlegende HTTP-Authentifizierung: Der Client sendet den Benutzernamen und das Passwort im Kopf der Anfrage, die dann zur Übertragung wieder in base64 kodiert werden.
- API-Schlüssel: Der Server weist dir einen eindeutigen Schlüssel zu, der normalerweise aus einer Folge alphanumerischer Zeichen besteht.
- OAuth: Dies ist die fortgeschrittenste Sicherheitsstufe. Der Server verlangt zuerst ein Passwort und dann ein zusätzliches Token, um den Authentifizierungsprozess abzuschließen. Das Token kann auch in regelmäßigen Abständen überprüft werden und eine bestimmte Lebensdauer haben.
Fazit
Dieser Artikel hat dir geholfen, REST-APIs zu verstehen und ihre Macht und Tragweite zu begreifen. Sie sind allgegenwärtig, wenn du Webdienste oder -anwendungen nutzt.
Wir haben hier nicht auf die Details ihrer Entwicklung eingegangen, aber die verschiedenen DataScientest-Kurse werden dir dabei helfen, diesen Aspekt zu verstehen.