REST API

Was ist eine REST API?

Eine REST API (Representational State Transfer Application Program Interface) ist ein Architekturstil, anhand dessen eine Software mit einer anderen Software über ein Netzwerk oder am selben Gerät kommunizieren kann. Der häufigste Einsatz von REST APIs ist im Aufbau eines Webservice. Diese werden auch als RESTful Webservices bezeichnet und nutzen HTTP-Methoden, um Daten zwischen dem Client-Gerät und einem Server abzufragen und zu senden.

Mithilfe des HTTP-Protokolls ermöglichen REST APIs Software von einem Gerät mit Software eines anderen Geräts (oder desselben Geräts) zu kommunizieren, selbst wenn diesen unterschiedliche Betriebssysteme und Architekturen zugrunde liegen. Der Client kann in einer Sprache Ressourcen abfragen, die der Server versteht. Der Server antwortet mit der Ressource in einer Sprache, die der Client verarbeiten kann. Der Server sendet die Ressource entweder im JSON (JavaScript Object Notation)-, XML (Extensible Markup Language)- oder Text-Format, aber viele APIs unterstützen Antworten in zusätzlichen Sprachen.

Was meinen wir mit REST-Architekturstil?

REST ist ein Set von Leitprinzipien, die ein Entwickler befolgen muss, bevor seine API als „RESTful“ gilt. Diese Prinzipien sagen aber nichts darüber, wie die API implementiert wird.

  • Client-Server-Architektur: Der Client der API nutzt HTTP-Aufrufe, um eine Ressource anzufordern (eine GET-Methode) oder um Daten an einen Server zu senden (eine POST-Methode), aber auch jede andere HTTP-Methode, die von der API unterstützt wird. Obwohl GET und POST die häufigsten Methoden sind, kann die API Methoden wie HEAD, PUT, PATCH, DELETE, CONNECT, OPTIONS und TRACE unterstützen. Die mit der API verfügbaren Methoden sind der API-Dokumentation zu entnehmen. Erfahre mehr auf w3schools.com
  • Zustandslosigkeit (Stateless): Eine zustandslose Anwendung erhält eine Verbindung nicht aufrecht und speichert Informationen zwischen Anfragen desselben Clients nicht. Ein Client stellt eine Anfrage, die API führt die in der Anfrage definierte Aktion durch und antwortet. Sobald die API geantwortet hat, gibt sie die Verbindung auf und behält keine Informationen über den Client im aktiven Speicher. Die API behandelt jede Anfrage als erste Anfrage.
  • Caching: Eine REST API sollte das Caching häufig angefragter Daten gestatten. Um Bandbreitennutzung, Latenz und Serverlast zu vermindern, sollte eine API identifizieren, welche Ressourcen im Cache gespeichert werden können, wer sie im Cache speichern kann und für wie lange.
  • Einheitliche Schnittstelle: Eine vorgegebene Art, wie ein Client mit dem Server interagiert, unabhängig von Gerät oder Anwendung.
  • Ressourcenbasiert: Die API benötigt einen bestimmten URI (Uniform Resource Identifier) für jede Ressource, beispielsweise wie bei Uptrends‘ API Version 4/monitor/{monitorGuid}.
  • Selbstbeschreibend: Enthält Metadaten wie Content-Type, die beschreiben, wie die Antwort verarbeitet wird. Erfahre mehr über MIME-Typen.
  • HATEOAS (Hypermedia as the Engine of Application State): Die Server-Antwort enthält den URI für weitere Methoden, auf die der Client mithilfe der Antwortdaten zugreifen kann. Erfahre mehr über HATEOAS.
  • Mehrschichtiges System: Eine API kann über mehrere Schichten, zum Beispiel Proxy-Server oder Lastverteilung, verfügen und der Endpunkt-Server kann zusätzliche Server zur Formulierung einer Antwort einsetzen. Der Client weiß nicht, welcher Server auf die Anfrage antwortet. Ein mehrschichtiges System macht eine API skalierbarer.
  • Code on Demand: Die API kann optional ausführbaren Code wie Java Applets oder JavaScript senden.

Was ist eine Webressource?

Eine Webressource ist im Grunde alles, womit ein Client im Web interagieren kann. Der Begriff kann sich auf eine Datei wie ein Word-Dokument, ein Bild, HTML oder Video beziehen, aber die Ressource kann auch abstrakter sein und tatsächliche Dinge umfassen. Eine Ressource kann auch ein Dienst sein, beispielsweise Google Maps oder Finanzdienstleistungen.

Der API-Entwickler entscheidet, welches Format für die Antwort unterstützt wird. Ein Server kann so etwa mit JSON, XML oder Text antworten. Die API sollte die Fähigkeit haben, die Antwort gemäß den Bedürfnissen des Clients zu formatieren.

Beispiele für REST APIs

Fast alles, was über das Internet abgewickelt wird, nutzt APIs. APIs arbeiten im Hintergrund und führen Aufgaben wie die Validierung von Adressen, Verarbeitung von Kreditkarten, Buchungen oder Terminvergaben aus.

Das United States Postal System veröffentlicht eine API, mithilfe derer Unternehmen ihre Postangelegenheiten wie Adressvalidierung, Postleitzahlabruf, Berechnung von Postgebühren, Erstellen von Versandlabeln und Abholungstermine verwalten.

Das Kaufhaus Macy’s bietet Partnern eine API, anhand derer sie die Bestände von Macy’s durchsuchen, mit Geschenk-Wunschlisten interagieren, Store-Events prüfen und Coupons erhalten können.

Die API von AMC Theaters ermöglicht Entwicklern anderer Apps, auf ihr Buchungssystem zuzugreifen, wo die App Spielzeiten aufrufen, Tickets kaufen und Snacks bestellen kann.

Facebook’s Graph API ermöglicht Anwendungen, mit der Facebook-Anwendung zu interagieren, zum Beispiel um Posts zu veröffentlichen, Werbung zu verwalten und Daten zu sammeln.

Bemerkenswert ist dabei: Es ist nicht ungewöhnlich, dass eine API eine andere API nutzt. Beispielsweise verwendet die oben genannte API von AMC Theaters eine andere API, um Zahlungen mit Kreditkarte zu verarbeiten.

API-Verfügbarkeit und -Geschwindigkeit gewährleisten

API-Nutzer stützen sich auf APIs, damit ihre Websites, Apps, und Geräte richtig funktionieren. Nicht erreichbare und langsame APIs führen zu Fehlschlägen und frustrieren Nutzer. Sowohl Anbieter von APIs und Nutzer müssen ein Monitoring für den möglichen Fall auftretender Probleme durchführen und schnell handeln, wenn es zu einem Ausfall oder einer schlechten Performance kommt.

REST-API-Überwachung mit Dashboard mit Kacheln zur Anzeige der API-Verfügbarkeit

Monitoring der API-Uptime

Selbst ein kurzer Ausfall kann bei Websites, Apps und Geräten Fehler hervorrufen. Herausgeber von APIs müssen dafür Sorge tragen, dass das System über die notwendigen Redundanzen verfügt, um Ausfälle zu verhindern. Dennoch kommen sie vor. Herausgeber einer API tragen ihren Nutzern gegenüber eine Verantwortung und müssen sicherstellen, dass die API ihnen ohne Unterbrechung antwortet. Ein Nutzer, der sich auf eine API stützt, sollte sein Geschäft und seine Kunden schützen, indem er die für seinen Dienst wichtigen APIs überwacht. Das Synthetic API Monitoring bietet zwei Lösungen: Multi-Step API Monitoring und Web Service Uptime monitoring.

Überprüfen der grundlegenden Verfügbarkeit und Performance der API

Um die korrekte Verfügbarkeit zu überwachen, sind häufige Überprüfungen erforderlich. Um eine hohe Verfügbarkeit zu gewährleisten, sollten Checks mindestens einmal pro Minute durchgeführt werden. Ein einfacher HTTPS/HTTP-Prüfobjekttyp ist eine perfekte Lösung, um Verfügbarkeit zu prüfen.

  • Jede Minute ein Check
  • Externer Check von verschiedenen weltweiten Standorten
  • Prüfung der grundlegenden Authentifizierung
  • Check der Antwortzeit
  • Prüfen der Antwort auf Inhalt
  • Prüfen auf einzelne Antwortcodes

Das Uptime Monitoring bietet Gewissheit, dass eine API auf Anfragen antwortet und wie lang diese Antwort benötigt. Die Nutzung eines Content-Checks und das Prüfen der Antwortcodes offenbart, ob die API mit den erwarteten Ergebnissen geantwortet hat. Tritt ein Fehler auf, benachrichtigt das Alarmierungssystem das Team über das Problem. Die Daten der Monitoring-Berichte untermauern zudem die Leistungsvereinbarungen.

Das Einrichten von Webservice-Monitorings für jeden Endpunkt stellt sicher, dass diese verfügbar bleiben. Das Testen der Endpunkte reicht aber möglicherweise nicht aus, um zu prüfen, dass eine API korrekt funktioniert. Das Multi-step API Monitoring kann komplexere API-Checks handhaben.

Erweitertes API Monitoring

Ein eingehendes Testen einer API kann etwas erfordern, das komplexere Szenarien verarbeitet, beispielsweise Umleitungen, Datenvalidierung und die Wiederverwendung von Daten. Das Multi-Step API Monitoring hebt das Verfügbarkeits-Monitoring auf die nächste Stufe.

Das Multi-step API Monitoring ermöglicht auch das Prüfen von API-Transaktionen hinsichtlich vollständiger Funktionalität, liefert Performance-Daten für die gesamte Transaktion und verfolgt die Geschwindigkeit für einzelne Anfragen mithilfe hinzugefügter Assertions.

Die wichtigsten Punkte

  • Eine REST API ist ein Architekturstil, mithilfe dessen eine Software mit einer anderen Software ungeachtet der Betriebssysteme kommunizieren kann.
  • REST APIs unterstützen eine Client/Server-Beziehung, indem eine einheitliche Schnittstelle bereitgestellt wird.
  • Die einheitliche Schnittstelle ieiner REST API ist ressourcenbasiert, selbstbeschreibend und nutzt HATEOAS.
  • HATEOAS (Hypermedia as the Engine of Application State) bedeutet, dass die API-Antwort Informationen über andere verfügbare Methoden enthält – unter Verwendung der empfangenen Daten.
  • REST APIs sind zustandslos. Das bedeutet, dass der Server die Verbindung oder eine Session zwischen Anfragen nicht aufrechterhält.
  • REST APIs sind mehrschichtige Systeme und fördern Skalierbarkeit.
  • Eine hohe Verfügbarkeit und schnelles Antworten sind wesentlich für eine REST API.
  • Das API Monitoring prüft auf Verfügbarkeit und Performance und sendet Benachrichtigungen, wenn es bei der API Probleme gibt.
  • Das Webservice HTTPS/HTTP Monitoring ist hervorragend für die Überwachung der Verfügbarkeit geeignet.
  • Das Multi-step API Monitoring bestätigt vollständige API-Interaktionen hinsichtlich Verfügbarkeit, Funktionsfähigkeit und Performance.

Teste Uptrends kostenlos

Siehe selbst anhand der kostenlosen 30-tägigen Testversion, wie Uptrends‘ API Monitoring dir hilft, APIs und mehr zu überwachen. Keine Kreditkarte erforderlich!

Unternimm den ersten Schritt
Durch die Nutzung dieser Website stimmen Sie der Verwendung von Cookies gemäß unserer Cookie-Richtlinien zu.