Der plattformübergreifende Datenaustausch ist im Zeitalter der Integrationen wichtiger denn je. Stellen Sie sich ein Online-Geschäft ohne Integrationen vor. Ihre Website müsste Systeme für die Verwaltung von Benutzerkonten, E-Mail-Abonnements, Zahlungsabwicklung, Versand und andere Aufgaben zusätzlich zur Verwaltung von Produktlisten entwickeln. Es wäre effektiver, diese Aufgaben an andere Anbieter auszulagern, da dies keine skalierbare Option ist.
Anwendungsprogrammierschnittstellen oder Web-APIs werden von Softwareprogrammen zur Kommunikation untereinander genutzt. APIs bieten ein einheitliches Protokoll für den Austausch von Daten zwischen zwei Programmen. Mit Hilfe von Web-APIs kann Ihr Online-Shop mit Auslieferungssoftware, Client-Anwendungen, Zahlungsanwendungen und allen anderen erforderlichen Verbindungen kommunizieren.
Es gibt verschiedene Möglichkeiten, eine API zu erstellen; wenn Sie jedoch Softwareverbindungen zu Ihren Diensten hinzufügen möchten, gibt es eine einzigartige Technik, mit der Sie vertraut sein sollten: REST-APIs-Webdienste. In diesem Artikel werden wir Beispiele für REST-APIs besprechen, was eine REST-API ist, wie REST-APIs funktionieren, wofür REST-APIs verwendet werden, ihre Geschichte, ihre Elemente und vieles mehr.
Was genau ist eine REST-API?
Representational State Transfer oder REST APIs Webservices sind die gängigste Praxis für die Verknüpfung von Komponenten in Microservices-Frameworks, da sie eine vielseitige, portable Möglichkeit zur Einbindung von Anwendungen bieten. REST ist ein beliebtes API-Design, das wir einsetzen, um mit internen und externen Stakeholdern auf standardisierte und vorhersehbare Weise zu interagieren.
Benutzer von Webanwendungen verwenden häufig REST-APIs als Webdienste, um miteinander zu kommunizieren. Zum Beispiel, um Kontodaten in einem Social-Media-Programm zu erfassen und zu überprüfen. Die REST-APIs-Browser können als die Syntax des Webs betrachtet werden. Online-Kunden nutzen Web-APIs, um den Zugang zu digitalen Vorgängen bereitzustellen und zu verwalten, da die Cloud-Nutzung zunimmt.
Die Entwicklung von Web-APIs, die es Kunden ermöglichen, sich mit digitalen Webdiensten zu verbinden, diese zu verwalten und dynamisch in einem verteilten Kontext zu nutzen, ist eine sinnvolle Entscheidung. Websites wie Google, eBay, Facebook, Amazon und Twitter verwenden RESTful-Webdienste. Client-Anwendungen können nun REST verwenden, um auf diese Webdienste zuzugreifen.
Die REST-Technologie wird gegenüber anderen verwandten Technologien bevorzugt. Dies liegt daran, dass REST-Webdienste weniger Bandbreite verbrauchen, was sie ideal für effiziente Online-Aktivitäten macht. REST-Webdienste können auch mit Programmiersprachen wie JavaScript oder Python entwickelt werden.
Wie funktionieren REST-APIs?
Um zu wissen, wie REST-APIs funktionieren, müssen wir einige Schlüsselbegriffe definieren:
Client
Ein API-Benutzer wird als Client bezeichnet. Der Client sendet Abfragen an die Web-APIs, um Daten zu erhalten oder Änderungen am Programm vorzunehmen. Ihr Internet-Browser ist ein Client; er kommuniziert mit verschiedenen Web-APIs, um Seiteninhalte zu erhalten. Ihr Computer empfängt die gewünschten Informationen, die dann auf dem Bildschirm angezeigt werden.
Im Folgenden finden Sie die gängigsten HTTP-Methoden:
- Verwenden Sie die GET-Anfrage, um angeforderte Daten oder Ressourcen zurückzugeben.
- Verwenden Sie die POST-Anforderung, um eine neue Ressource zu erstellen
- Verwenden Sie die PUT-Anweisung, um Änderungen an einer bestehenden Ressource vorzunehmen oder diese zu aktualisieren
- Verwenden Sie den DELETE-Befehl, um eine Ressource loszuwerden.
Eine HTTP-Anfrage an die API von Youtube könnte beispielsweise eine GET-Anfrage für ein bestimmtes Video oder einen Beitrag oder eine POST-Anfrage für die Veröffentlichung eines neuen Fotos sein. Sie können die POST-Anforderungsmethode verwenden, um neue Beiträge zu veröffentlichen. Dementsprechend kann eine Kunden-Webdienstplattform, die sich in eine Auto-Attendant-Implementierung integriert, die PUT-Anweisung verwenden, um eine benutzerdefinierte Begrüßung zu aktualisieren oder zu löschen.
GET-Anfrage
- Das Caching von GET-Anfragen ist möglich, die Historie des Browsers enthält GET-Anfragen.
- Das Setzen von Lesezeichen für GET-Anfragen ist möglich.
- Verwenden Sie niemals GET-Anfragen, wenn Sie mit kritischem Material arbeiten.
- Es gibt Längenbeschränkungen für GET-Anfragen.
- Nur Datenabfragen werden über GET-Anfragen durchgeführt.
Das POST-Verfahren
Die POST-Anfrage ist eine Post-Methode zum Senden von Informationen an einen Server, um Ressourcen hinzuzufügen oder zu aktualisieren. Der Anfragekörper einer HTTP-Anfrage enthält die Daten, die auf der Serverseite veröffentlicht werden:
- POST-Anfragen nach der Post-Methode gehen nie in einen Cache.
- POST-Anfragen werden nicht in der History des Browsers gespeichert.
- POST-Anfragen können nicht mit Lesezeichen versehen werden.
Antwortkörper
Der Antwortkörper ist eines der wichtigsten Elemente der RESTful-API. Die angeforderten Daten werden in den Antwortkörper aufgenommen. Der Antwortkörper kann Daten enthalten, die sich auf die Ausgangs- und Ausgangslogik-Ports beziehen.
Ressource
Alle Daten, die die Web-APIs dem Benutzer zur Verfügung stellen können, sind eine Ressource. So können beispielsweise eine Person, eine Seite, ein Bild oder eine Bemerkung in der Facebook-API als Ressource betrachtet werden. Der Ressourcenkennzeichner ist ein spezieller Begriff für jede Ressource.
Webserver
Das Programm, das die Kundenanforderung entgegennimmt, verwendet einen Webserver, auf dem die vom Kunden angeforderten Ressourcen gespeichert sind. Der Server kann mit den Kunden über eine API kommunizieren, ohne den Kunden unmittelbaren Zugriff auf die in seinen Datenbanken gespeicherten Informationen zu bieten. Wenn ein Benutzer auf RESTful-Webdienste zugreift, um eine Anfrage zu stellen, sendet der Server eine normalisierte Darstellung des Zustands der Ressource an den Browser.
Dies bedeutet, dass der Server nicht die genaue Ressource an den Client übermittelt, sondern ihren Zustand wiedergibt, d. h. den Zustand der Ressource zu einem bestimmten Zeitpunkt. Um die Verständlichkeit zu erleichtern, werden die Antworten in einem leichtgewichtigen Format zurückgegeben.
JSON (JavaScript Object Notation) ist weit verbreitet, da es sowohl für Menschen als auch für Maschinen lesbar ist und die Barrierefreiheit im Web fördert. JSON wird in erster Linie für die Übermittlung von Anforderungsdaten in Web- und Client-Anwendungen verwendet. Es ist eine kompatible Form mit einer Vielzahl von Kodierungen. Andere API-Datenformate als JSON sind XML, YAML, CSV, HTML und einfacher Text. Benutzer von APIs können jedes gewünschte Datenformat auswählen, indem sie benutzerdefinierte Medientypen verwenden.
Geschichte der REST-APIs
Vor REST mussten viele Programmierer mit SOAP arbeiten, um APIs einzubinden. Das Erstellen, Verwenden und Debuggen von SOAP war bekanntermaßen eine schwierige Aufgabe. Zum Glück wurde REST von einem Team von Programmierern unter der Leitung von Roy Fielding entwickelt und veränderte die API-Umgebung für immer.
Hier ist eine Chronologie der Entwicklung von REST-APIs im Laufe der Zeit:
Vor REST
Programmierer schrieben manuell eine XML-Datei, die einen Remote Procedure Call (RPC) innerhalb des Inhalts enthielt, um Web-APIs über SOAP zu verbinden. Danach schickten die Entwickler ihr SOAP-Paket an den angegebenen Endpunkt.
Im Jahr 2000
Ein Team von Programmierern unter der Leitung von Roy Fielding beschloss, einen Rahmen zu entwickeln, der es jedem Server ermöglicht, mit jedem anderen Server zu kommunizieren. Er legte die Einschränkungen für REST-APIs fest. Da diese Richtlinien universell sind, ist die Entwicklung von Software einfacher.
Im Jahr 2002
Im Jahr 2002 entwickelte eBay seine RESTful API und öffnete seinen Marktplatz für alle Websites, die davon profitieren konnten. Daraufhin interessierte sich ein weiterer Titan des elektronischen Handels, Amazon, dafür und gab 2002 seine RESTful API frei.
In den Jahren 2004-2006
Die RESTful-Webdienste von Flickr wurden 2004 veröffentlicht und ermöglichten es Autoren, schnell Fotos zu ihren Websites und Beiträgen in sozialen Medien hinzuzufügen. Als Twitter und Facebook bemerkten, dass eine beträchtliche Anzahl von Programmierern die Websites scannte und "Frankenstein"-APIs erstellte, veröffentlichten beide ihre APIs etwa zwei Jahre später.
Im Jahr 2006 - heute
RESTful-Webdienste sind inzwischen bei Programmierern weit verbreitet, die diese RESTful-Webdienste nutzen, um die Leistung ihrer Anwendungen und Websites zu verbessern. AppMaster erleichtert die Zusammenarbeit und vereinfacht die Erstellung von APIs, so dass Sie dies schneller tun können.
Wofür werden REST-APIs verwendet?
Einer der Hauptvorteile von RESTful-Webdiensten ist die große Flexibilität, die es Ihnen ermöglicht, diese RESTful-API effektiver zu nutzen. Im Folgenden finden Sie einige Beispiele dafür, wofür REST-APIs verwendet werden.
Cloud-basierte Anwendungen
Aufgrund der Zustandslosigkeit ihrer Aufrufe sind REST-APIs in Cloud-Anwendungen von Vorteil. Zustandslose Module können leicht neu installiert und erweitert werden, um den Kapazitätsbedarf zu decken, wenn etwas schief geht. Ein Softwareprogramm, das lokale und internetbasierte Komponenten kombiniert, ist eine Cloud-Anwendung. Bei diesem Paradigma werden entfernte Server verwendet, auf die über einen Webbrowser und laufende Internet-Webdienste zugegriffen wird, um Anweisungen auszuführen.
Der traditionelle Standort von Cloud-Anwendungshosts ist ein entferntes Computersystem, das von einem dritten Cloud-Computing-Netzbetreiber betrieben wird. E-Mail, gemeinsame Nutzung und Speicherung von Dokumenten, Auftragseingabe, Bestandskontrolle, Microsoft Word, Verwaltung von Kundenbeziehungen(CRM), Informationsbeschaffung sowie Finanz- und Rechnungswesen sind Beispiele für Aufgaben, die mit Cloud-basierten Anwendungen ausgeführt werden.
REST-Programmierschnittstellen(APIs) können verwendet werden, um externe Informationsquellen und Speicherressourcen zu verbinden. Programmierer können Cloud-Anwendungen mit Hilfe von REST-APIs verkleinern, um Daten an andere Programme zur Bearbeitung oder Analyse von Berechnungen zu übertragen und die Ergebnisse an das Softwareprogramm zurückzugeben. Getestete APIs erzwingen eine aktive Einheitlichkeit, die die Produktion beschleunigen und echte Ergebnisse liefern kann.
Ein Paradebeispiel für eine Cloud-Anwendung ist Google Docs oder Office 365. Alles, was Sie für Google Docs oder Office 365 benötigen, ist ein Computer, der Suchmaschinen und Internet-Webdienste ausführen kann. Computernetzwerke stellen die Benutzeroberfläche und den Betrieb, einschließlich der Datenspeicherung, bereit. Zahlreiche verschiedene Cloud-Anwendungen können von Ihrem Unternehmen mithilfe von Cloud-Anwendungshosts gehostet werden.
Cloud-Dienste
Da Sie verwalten müssen, wie die URL verarbeitet wird, um eine Verbindung zu einer Ressource über eine API herzustellen, sind REST-APIs auch für Cloud-Webdienste nützlich. Die RESTful-Webdienst-Architektur wird in Zukunft aufgrund von Cloud-Anwendungen wahrscheinlich zum Standard werden. Programmierer verwenden RESTful-Webdienste, um über das Internet eine Verbindung zu Cloud-Diensten herzustellen. Ein Entwickler erstellt einen Code, der die API des Internetanbieters nutzt, gibt die erforderlichen Eingaben und Variablen ein und überprüft dann die Antwort, um sicherzustellen, dass die Aktion wie erwartet funktioniert.
Endnutzer können auf Client-Anwendungen oder Webdienste zugreifen, die von Cloud-Webdiensten angeboten werden, z. B. Recheninfrastrukturen, Speichersysteme oder Verfolgungssysteme, indem sie einen Cloud-Dienst wie RESTful Web Services nutzen. APIs beschreiben die Fähigkeiten und Vorgänge einer Anwendung und die zu ihrer Ausführung erforderlichen Einzelheiten. Um den Datenschutz und die Sicherheit der Kunden zu gewährleisten, sind APIs oft auf REST- oder Simple Object Access Protocol (SOAP)-Interoperabilität und Berechtigungsmechanismen wie OAuth 2.0 angewiesen.
Eine Vielzahl von Webdiensten wird als "Cloud Services" bezeichnet und Unternehmen und Verbrauchern auf Anfrage online zur Verfügung gestellt. Diese Webservices wurden entwickelt, um einen schnellen und kostengünstigen Zugriff auf Tools und Anwendungen zu ermöglichen, ohne dass dafür Hardware oder Infrastruktur erforderlich ist. Die meisten Mitarbeiter nutzen Cloud-Webdienste für alles, von E-Mail bis zur Zusammenarbeit an Dokumenten.
Web-Nutzung
Diese Web-APIs können von einem Benutzer-Webprojekt, einer iPhone-App, einem IoT-Gerät oder einem Windows Mobile abgerufen werden, da REST nicht von clientseitigen Funktionen abhängig ist. Sie können die Architektur für Ihr Unternehmen erstellen, ohne an ein bestimmtes clientseitiges Framework gebunden zu sein.
Ein REST-API-Beispiel
Lassen Sie uns ein REST-API-Beispiel besprechen. Klicken Sie auf den unten stehenden Link, um eine beliebige Intelligenzabfrage an die Open Trivia Database zu stellen: Solche RESTful-Webdienste wurden verwendet, um eine öffentliche Web-API bereitzustellen. Ihr Computer zeigt eine einzelne Quizfrage und ihre Antworten im JSON-Format an.
Mit einem beliebigen HTTP-Browser, z. B. url, könnten Sie die folgende Anfrage stellen und eine Antwort im Antwortkörper erhalten: https://opentdb.com/api.php?amount=1&category=18
Der Antwortkörper der XML-Datei des Webdienstes enthält alle Informationen über den Arbeitnehmer.
Alle weit verbreiteten Programmierdialekte und Entwicklertools verfügen über HTTP-Client-Bibliotheken, wie z. B. retrieve in JavaScript, Node.js und Deno und file get contents() in PHP. Eine JSON-Antwort kann gelesen und verwendet werden, da sie maschinenlesbar ist, bevor sie in HTML oder einem anderen Stil angezeigt wird.
Die Rest- und REST-APIs
Im Laufe der Zeit haben sich viele Methoden zur Datenübertragung entwickelt. Vielleicht haben Sie schon einmal CORBA, SOAP oder XML-RPC kennengelernt. Die meisten haben strenge Nachrichtenrichtlinien entwickelt. Roy Fielding beschrieb im Jahr 2000 erstmals REST, das wesentlich einfacher ist als die anderen.
Es handelt sich eher um eine Sammlung von Vorschlägen und Einschränkungen für RESTful Web Services als um eine Norm. Diese bestehen aus den folgenden architektonischen Beschränkungen:
Client-Server-Trennung
Clients und Webserver können in der REST-Architektur nur in eine Richtung kommunizieren: Der Client fordert den Domänencontroller an, und der Controller oder Server antwortet auf die Anforderung. Webserver können keine Anfragen stellen, und die Kunden können nicht reagieren; alle Verbindungen werden vom Verbraucher hergestellt.
RESTful-Webdienste halten Kunden und Server voneinander getrennt, indem sie die Interaktion zwischen ihnen erleichtern. Client-Computer können sich weiterentwickeln, ohne dass man befürchten muss, ein anderes Hosting zu beeinträchtigen, und Server-Materialien können geändert werden, ohne dass dies unwissentlich Auswirkungen auf die Kunden hat.
Einheitliche Schnittstelle
Nach dieser Strategie müssen sich alle Anfragen und Reaktionen an ein standardisiertes Proweb-Verfahren halten oder ihre Nachrichten stilisieren. Apps und Server werden in verschiedenen Programmiersprachen entwickelt, die mit einem Mediator schlecht miteinander funktionieren. Eine einheitliche Schnittstelle ist ein Dialekt, den jeder Kunde verwenden kann, um mit beliebigen REST-APIs zu interagieren.
Das Übersetzen von Anfragen und Reaktionen zwischen Anwendungen wäre nur mit normalisierter Interaktion möglich. Geringfügige Unterschiede würden zu einer Vermischung und zum Verlust von Informationen führen, und die Lösungen müssten ihre Anfrageverfahren aktualisieren, wenn die Web-APIs ihre Verfahren ändern. Eine einheitliche Schnittstelle schließt diese Gefahr aus.
ZUGANG ZU https://www.googleapis.com/youtube/v3/channels?part=contentDetails
Wie alle REST-Client-Anwendungen enthält auch dieser Vorschlag zwei Datenelemente. Die HTTP-Technik ist GET. Damit wird die Aktion beschrieben, die der Client an den Ressourcen durchführen möchte. Ein Benutzer kann vier grundlegende HTTP-Methoden anwenden:
HTTP, oder Hyper-Text Transfer Protocol, ist die universelle Sprache für die meisten REST-APIs. HTTP wurde nicht mit Blick auf REST entwickelt. Außerdem hat REST diese Datenübertragung als Kriterium für REST-fähige Anwendungen akzeptiert. Bei der Verwendung von HTTP mit REST-APIs sendet der Client eine Anfrage in einem Format, das Ihnen vielleicht bekannt ist. Eine Videoanforderung an die YouTube-API sieht zum Beispiel so aus:
- Verwenden Sie den Befehl GET, um eine Ressource zu erhalten.
- Verwenden Sie den POST-Befehl, um eine neue Ressource zu erstellen
- Verwenden Sie den PUT-Befehl, um Änderungen an einer bestehenden Ressource vorzunehmen oder diese zu aktualisieren
- Verwenden Sie die DELETE-Anweisung, um eine Ressource loszuwerden.
HTTP-Methoden spezifizieren die beabsichtigte Aktion, die in Bezug auf eine bestimmte Ressource durchgeführt werden soll. HTTP-Methoden sind auch als HTTB-Verben bekannt.
Die URL ist HTTP
Der Uniform Resource Identifier (URI), der die gewünschte Ressource identifiziert, ist in der URL enthalten. Die URL ist in diesem Szenario auch ein Endpunkt, da sie der Ort ist, an dem die RESTful-API mit dem Dienstnutzer in Kontakt tritt.
Abfragezeichenfolge: Die URL enthält einen Abfrage-String. Der Query-String wird zur Definition der Parameter verwendet, die mit Werten versehen werden.
Nachdem der Webserver die Anfrage erhalten und überprüft hat, gibt er Daten über die Zielressource zurück. In der Regel werden die Daten in einer als JSON (JavaScript Object Notation) bezeichneten Struktur zurückgegeben. JSON stellt alle Komponenten einer Ressource in einem portablen Format dar, das von Menschen leicht gelesen werden kann.
Grundsätze der einheitlichen Schnittstelle
Die einheitliche Schnittstelle muss den folgenden Parametern entsprechen:
HATEOAS: Hypermedia als Motor des Anwendungsstatus
Hypermedia ist der Motor hinter RESTful Web Services. Dies bedeutet, dass Hypermedia alles ist, was der Kunde verstehen will, um die Antwort des Anbieters zu erkennen.
- Nur der erste URI der Client-Anwendung muss dem Kunden zur Verfügung gestellt werden. Die Client-Anwendung sollte alle anderen Materialien und Aktivitäten kontinuierlich über Hyperlinks ansteuern.
- RESTful-Webdienste benötigen keine Input Query Language (IDL), die sich von anderen APIs unterscheidet
Ein Medientyp ist ein Name für das Datenformat einer Darstellung. Der Medientyp identifiziert eine Definition, die umreißt, wie eine Darstellung behandelt werden sollte. Eine Web-API, die REST verwendet, erscheint wie ein Hypertext. Jedes Datenelement, das angesprochen werden kann, trägt einen Ort, entweder direkt (z. B. durch Link- und Identitätseigenschaften) oder implizit (z. B. abgeleitet von der Medientyp-Beschreibungsstruktur).
Selbstbeschreibende Nachrichten
Jede Kommunikation zwischen der Client- und der Serverseite sollte genügend Daten für die Ausführung der Kommunikation liefern. Dementsprechend muss die Anfrage von der Client-Seite an die Server-Seite die Ressource angeben, auf die sie zuzugreifen versucht, sowie ihre spezifischen Ziele.
Darüber hinaus müssen Ressourcendarstellungen selbstbeschreibend sein; der Benutzer muss nicht wissen, ob eine Ressource eine Person oder ein Gerät ist. Stattdessen sollte er auf den mit der Hilfe verbundenen Medientyp reagieren.
Daher werden wir unbestreitbar viele einzigartige Medientypen entwickeln, oft einen Medientyp pro Ressource. Jede Medienform spezifiziert ein Standardproduktionsparadigma. So definiert beispielsweise HTML, wie Hypertext dargestellt wird und wie der Browser die einzelnen Komponenten behandelt.Identifizierung der Ressourcen
Die Ressourcen, auf die in der rückwärtigen Kommunikation zwischen dem Kunden und dem Server verwiesen wird, müssen anhand von Darstellungen erkennbar sein. Das Festhalten am System der Uniform Resource Identifier (URI) hat dies ermöglicht. Mit anderen Worten, die Kommunikation zwischen dem Server und dem Kunden kann eine HTML-Version des Dokuments und einige Informationen enthalten und nicht die eigentliche Datei aus dem Speicher des Servers.
Der Verbraucher kann die HTML-Version leicht verstehen, da sie dem URI-Muster folgt. Der Kunde muss die Ressourcen ändern, indem er dem Server eine Darstellung gibt, wie die Ressource letztendlich aussehen soll. Dies würde es dem Benutzer ermöglichen, Ressourcen zu erstellen, abzurufen, zu ändern und zu entfernen. Wenn der Kunde die nötige Berechtigung zum Ändern der Daten hat, sollte der Server die Anfrage erfüllen.
Zustandslos
Bei einer RESTful-API müssen alle Client-Anfragen vergänglich sein. Daher enthalten jede Anfrage und jeder Antwortkörper alle Daten, die zum Abschluss des Vertrags erforderlich sind, so dass jede Verbindung autonom ist. Der Server merkt sich keine früheren HTTP-Anfragen; er behandelt jede Anfrage des Clients als eine völlig neue Anfrage.
Da der Server keine zusätzlichen Aufgaben ausführen muss, um historische Daten zu erhalten, minimieren zustandslose Transporte den Speicherbedarf des Servers erheblich und erhöhen die Wahrscheinlichkeit, dass eine Antwort akzeptabel ist. Dies garantiert die Skalierbarkeit dieser Interaktionen: Die Programmierer müssen sich keine Sorgen machen, dass sie viel mehr Speicherplatz benötigen oder den Server belasten, wenn ihre Software expandiert und HTTP-Anfragen stellt.
Mehrschichtig
Bisher haben wir Web-API-Abfragen als einen einfachen Client-Server-Austausch definiert, obwohl dies eine starke Vereinfachung darstellt. Zwischen diesen beiden Organisationen gibt es oft mehrere Server. Diese Plattformen oder Schichten dienen zur Verwaltung und Verteilung des Datenverkehrs, zum Schutz und zur Durchführung verschiedener anderer wichtiger Aufgaben.
Nach diesem Konzept müssen Nachrichten, die zwischen einem Benutzer und einem Zielserver gesendet werden, ähnlich strukturiert und behandelt werden, unabhängig von den dazwischen liegenden Schichten. Zusätzliche Schichten sollten bei Kundeninteraktionen in Ordnung sein. Programmierer, die sich an diese Regel halten, können Serversysteme wechseln, ohne den grundlegenden Anfrage-Antwort-Prozess zu beeinträchtigen.
Cachefähig
Caching findet statt, wenn ein Kunde auf einer Website surft und der Inhalt auf dem Rechner des Kunden gespeichert ist. Das zwischengespeicherte Material wird schnell aus dem internen Speicher geladen und muss nicht erneut vom Server heruntergeladen werden, wenn ein Nutzer die Website später besucht. Die meisten großen Websites nutzen die Zwischenspeicherung, um die Seitenlast zu verringern und gleichzeitig Serverplatz und Bandbreite zu sparen.
Die Zwischenspeicherung von Daten wird bei der Entwicklung von REST-APIs berücksichtigt. Die Antwort, die ein Server an einen Kunden gibt, sollte angeben, ob und wie lange die gegebene Ressource gespeichert werden kann.
Bedarfsorientierter Code
Der letzte REST-Grundsatz ist unnötig. Bei Bedarf kann die Antwort einer API Softwarecode enthalten, den die Kunden verwenden können. Dadurch kann der Kunde die Client-Anwendung oder das Programm in seinem Backend ausführen.
Eine API wird als RESTful API bezeichnet, wenn sie diese Richtlinien erfüllt. Diese Richtlinien geben den Programmierern jedoch viel Freiheit, die Funktionen ihrer RESTful API zu ändern. REST-APIs unterscheiden sich vom Simple Object Access Protocol, einer anderen beliebten Web-API-Technik, dadurch, dass sie flexibler sind (SOAP).
Endpunkt-Konsens
Berücksichtigen Sie diese Endpunkte:
- /user/123\s
- /benutzer/id/123\s
- /user/123\s/user/id/123\s
- /benutzer/?id=123
Alle sind legitime Methoden für den Client 123, um Daten abzurufen. Wenn es kompliziertere Verfahren gibt, wächst die Zahl der Möglichkeiten. Zeigen Sie beispielsweise in umgekehrter Reihenfolge, beginnend mit Eintrag 51, 10 Personen an, deren Nachnamen mit "A" beginnen und die für das Unternehmen tätig sind.
Letztendlich ist es egal, wie Sie die URLs strukturieren; wichtig ist die Einheitlichkeit Ihrer RESTful-API. Bei großen Softwaresystemen mit vielen Programmierern ist das nicht einfach. Änderungen an der RESTful-API sind unvermeidlich, aber Endpunkt-URLs dürfen niemals abgelehnt werden, da dies dazu führt, dass die Anwendungen, die auf sie angewiesen sind, nicht mehr funktionieren.
REST-API-Versionierung
Die Versionierung von APIs ist eine gängige Praxis, um Inkompatibilitäten zu vermeiden. Zur Veranschaulichung: /2.0/user/123 ersetzt /user/123. Der alte und der neue Endpunkt können beide weiterhin funktionieren. Dies führt dazu, dass wichtige APIs der Vergangenheit beibehalten werden müssen. Frühere Versionen können schließlich außer Betrieb genommen werden, aber das Verfahren muss sorgfältig durchdacht werden.
REST-API-Authentifizierung
Jedes Gerät kann einen Quip ohne Autorisierung über die Anfrage-API herunterladen. Die APIs, die private Informationen lesen oder das Bearbeiten und Entfernen von Abfragen ermöglichen, unterstützen dies nicht. Client-seitige Programme, die sich in derselben Domäne wie die RESTful-Webdienste befinden, senden und empfangen Cookies auf dieselbe Weise wie HTTP-Anfragen. (Bitte beachten Sie, dass die Option zum Neustart von Privilegien in früheren Sites für Fetch() angegeben werden muss). Eine API-Abfrage kann überprüft werden, um zu bestätigen, dass ein Benutzer angemeldet ist und über die erforderlichen Berechtigungen verfügt.
HTTP-Basisauthentifizierung: Programme von Drittanbietern müssen unterschiedliche Genehmigungslösungen verwenden. Einige beliebte Authentifizierungsmethoden sind die primäre Überprüfung für:
- HTTP. Ein base64-kodierter Benutzername: Passwort-String wird im Abfragefeld als Teil eines HTTP Approval-Headers angegeben.
- API-Schlüssel: Durch die Bereitstellung eines RESTful-API-Schlüssels, der spezielle Berechtigungen haben kann oder auf eine einzelne Website beschränkt ist, wird eine API für Anwendungen von Drittanbietern verfügbar gemacht. Jede Nachricht enthält den Schlüssel entweder in der Abfragezeichenfolge oder im HTTP-Header. (Der Abfrage-String ist ein Bestandteil der URL).
- OAuth: Bevor eine Anfrage gestellt wird, werden eine Kunden-ID und eventuell ein Kundengeheimnis an einen OAuth-Server gesendet, um ein Credential zu erhalten. Bis zu ihrem Ablauf wird die OAuth-Identität dann mit jeder API-Anfrage übermittelt.
- Internet-Tokens in JSON (JWT): Der Query-Header und der Response-Header übermitteln sicher digital signierte Benutzeranmeldeinformationen. JWTs ermöglichen es dem Server, Zugriffsrechte zu verschlüsseln, wodurch die Abfrage einer Datenbank oder die Verwendung eines anderen Authentifizierungsmechanismus überflüssig wird.
Das Nutzungsszenario beeinflusst, wie eine API authentifiziert wird:
- Manchmal wird ein Drittanbieterprogramm wie jeder andere angemeldete Client mit denselben Privilegien und Rechten behandelt. Eine Karten-API kann beispielsweise einem anfragenden Programm Anweisungen zwischen zwei Orten geben. Das Programm muss sich vergewissern, dass es sich um einen rechtmäßigen Benutzer handelt, aber es muss nicht die Anmeldedaten des Clients überprüfen.
- In anderen Situationen fragt das Programm eines Drittanbieters nach persönlichen Informationen eines bestimmten Benutzers, z. B. nach E-Mail-Inhalten. Die REST-APIs müssen den Client und seine Berechtigungen erkennen, aber sie müssen sich nicht um das aufrufende Programm kümmern.
REST-API-Sicherheit
RESTful-Webdienste bieten eine weitere Möglichkeit, mit Ihrer Software zu interagieren und sie zu beeinflussen. Selbst wenn Ihr Host kein erhöhtes Ziel für Hacker ist, könnte ein missbräuchlicher Benutzer Hunderte von Anfragen pro Sekunde stellen und ihn zum Einsturz bringen. Dieser Artikel befasst sich nicht mit der Sicherheit, sondern mit den besten Standardverfahren:
Verwendung von HTTPS
Einsatz eines starken Authentifizierungsmechanismus
CORS kann verwendet werden, um Kundenaufrufe auf bestimmte Bereiche zu beschränken.
Stellen Sie die notwendigen Fähigkeiten zur Verfügung - das heißt, verzichten Sie auf
Erzeugen Sie keine DELETE-Entscheidungen, die nicht notwendig sind; überprüfen Sie alle Endpunkt-URLs und Body-Informationen.
Blockieren Sie Links aus nicht identifizierten Bereichen oder IP-Adressen, indem Sie keine API-Voucher in clientseitigem JavaScript unterbringen.
Ungewöhnlich große Pakete werden blockiert.
Denken Sie an eine Ratenbeschränkung, bei der Anfragen von derselben IP-Adresse oder demselben API-Gutschein auf N Abfragen pro Minute beschränkt werden.
Antwort mit dem richtigen HTTP-Statuscode, Cache-Header-Protokollabfragen und erfolglose Untersuchung
Mehrfache Anfragen und unnötige Daten
Der Einsatz von RESTful-Webdiensten hat seine Grenzen. Es ist möglich, dass eine Antwort mehr Informationen enthält, als Sie angefordert haben, oder dass mehrere Anfragen erforderlich sind, um alle Informationen zu erhalten. Denken Sie an RESTful-Webdienste, die Benutzern Zugang zu Informationen über Autoren und Bücher geben; der Client könnte:
- Abfrage der Informationen zu den ersten 10 Büchern, aufgelistet in der Reihenfolge des Kaufs (Bestseller zuerst). Die Antwort enthält eine Sammlung von Büchern zusammen mit der ID jedes Autors.
Um die Informationen für jeden Autor abzurufen, erstellen Sie bis zu 10 /author/id-Abfragen.
Für jede Antwort auf die übergeordnete Abfrage müssen N API-Abfragen erstellt werden, was als "N+1-Problem" bezeichnet wird.
Wenn diese Situation häufig auftritt, können die RESTful-Webdienste so modifiziert werden, dass sie alle Autoreninformationen für jedes von ihnen produzierte Buch enthalten, einschließlich Name, GeschlechtNationalität, Lebenslauf usw. Es können sogar noch mehr Informationen über frühere Bücher bereitgestellt werden, allerdings würde dies den Beantwortungsaufwand erheblich erhöhen. Die API kann dahingehend geändert werden, dass die Angaben zum Autor optional sind. Autorendetails=full, um unnötig umfangreiche Antworten zu vermeiden. Die schiere Anzahl der Optionen, die API-Designer unterstützen müssen, könnte überwältigend sein.
Schlusswort
Sie haben nun ein umfassendes Verständnis von REST-APIs, der Funktionsweise von REST-APIs, von REST-API-Beispielen, der Verwendung von REST-APIs, architektonischen Einschränkungen und anderen in diesem Lernprogramm behandelten Themen. Programmierer finden es oft schwierig und einschüchternd, etwas über APIs zu lernen, aber die No-Code-Plattform AppMaster hat eine neue zugängliche REST-API-Bibliothek erstellt, in der Sie Ihr Wissen über eine Reihe von REST-APIs vertiefen können, um Ihre weitere berufliche Entwicklung zu unterstützen.
Bei AppMaster versuchen wir, die Zugänglichkeit und Benutzerfreundlichkeit von APIs zu verbessern. Wir möchten, dass Sie die Vorteile der Verwendung von API-Software in Ihrem Berufs- und Privatleben kennen lernen, damit experimentieren und sie erkennen. Damit Sie bessere Web-APIs schneller entwickeln können, verbessert AppMaster die Zusammenarbeit und automatisiert jede Phase des API-Lebenszyklus. Erstellen Sie weiterhin REST-APIs, entwickeln Sie sie weiter und erweitern Sie Ihr Verständnis für sie.