BLOG

API-Architektur beherrschen: API-Grundlagen

Byron McNaught Miniaturbild
Byron McNaught
Veröffentlicht am 05. Dezember 2022


Application oder APIs liegen voll im Trend.

Jubeln

APIs sind zwar nichts Neues, doch aktuelle Phänomene wie die beschleunigte digitale Transformation während COVID-19, verbesserte Softwareintegrationen und Bemühungen, ältere Apps auf die Cloud umzustellen, haben zu einer kontinuierlichen API-Ausbreitung geführt – mit Auswirkungen auf Management, Sicherheit und sogar Architekturentscheidungen, die Unternehmen treffen, um in der modernen digitalen Wirtschaft erfolgreich zu sein.

APIs können im Wesentlichen den Aufstieg der Maschinen darstellen. Doch glücklicherweise haben die Menschen (zumindest im Moment) immer noch die Kontrolle über deren Bau, Verwaltung und Sicherheit.

Roboter

Grundsätzlich gilt, dass der Verbraucher , sozusagen in der „API-Sprache“, im Allgemeinen Abfragen oder Anforderungen an den Hersteller sendet, und zwar über einheitliche Schnittstellen, die aus verschiedenen Standards, Schemata und Spezifikationen bestehen.

Beispielsweise enthält der National Weather Service (der Hersteller ) tägliche Wetterdaten. Die Wetter-App auf Ihrem Telefon (der Verbraucher ) ruft dieses System über die WeatherKit REST API auf bzw. fragt es ab und gibt die Daten dann über die Benutzeroberfläche der Wetter-App wieder. Dies ist zwar nur ein einfaches Beispiel für eine beliebte, von Millionen von Benutzern verwendete App, es ist jedoch bemerkenswert, dass die Maschine-zu-Maschine-Kommunikation den Löwenanteil des Datenverkehrs bei modernen digitalen Erlebnissen ausmacht und über APIs ermöglicht wird.

Löwe

APIs bieten eine Reihe von Technologievorteilen, die sich in einem geschäftlichen Mehrwert niederschlagen:

Technologievorteile Geschäftswert
Abstrahieren Sie die zugrunde liegende Implementierung einer Web-App. Organisationen können schnell mobile Apps und auf Microservices basierende Architekturen bereitstellen.
Geben Sie Typen an, damit Entwickler API-Verbraucher mithilfe von Tools implementieren können. Führungskräfte können Entwicklungsprozesse optimieren, um die Markteinführungszeit zu verkürzen.
Definieren Sie Semantik/Verhalten, um einen konsistenten und vorhersehbaren Informationsaustausch zu modellieren. Partner können Integrationen von Drittanbietern entwickeln und monetarisieren.

Bei der Implementierung von APIs müssen verschiedene Aspekte berücksichtigt werden. Insbesondere im Hinblick auf Modellierung, Versionierung und Vertragstests, die dabei helfen, Abhängigkeiten aufzulösen und die Interoperabilität während Entwurf, Konstruktion und Wartung sicherzustellen.

Rücksichtnahme Beschreibung Nutzen
Modellieren Die Semantik oder das Verhalten zur Darstellung und Strukturierung des Informationsaustauschs. Optimierte Verwaltung verteilter Architekturen.
Versionierung Governance-Strategien für Release und Wartung während des gesamten API-Lebenszyklus. Maximale Benutzerfreundlichkeit und Abwärtskompatibilität.
Vertragsprüfung Definierte Interaktion und erwartete Reaktionen zwischen Verbraucher und Hersteller. Deterministische Interaktionen mit Geschäftsintegrationen von Drittanbietern.

Es gibt keinen richtigen oder falschen Weg, eine API zu erstellen, zu verwalten und zu sichern. Tatsächlich wurde es mit der zunehmenden Verbreitung von APIs notwendig, ihre Form und Struktur zu standardisieren, um sie in großem Maßstab nutzen zu können. Geben Sie die OpenAPI -Initiative und die daraus resultierende OpenAPI-Spezifikation (OAS) ein. Swagger war die ursprüngliche Referenzimplementierung der OpenAPI-Spezifikation, und die meisten Tools sind mittlerweile auf die Verwendung von OpenAPI ausgerichtet, das immer noch seinen Swagger beibehält (HA!).

Tatsächlich kann eine API unter Verwendung einer Vielzahl von Standards, Schemata und Spezifikationen erstellt werden. Beispielsweise eine RESTful- Präsentation, ein gRPC -Dienst und Verbindungen in ein GraphQL- Schema.

Durchführung Überblick Vorteile Wann zu verwenden


REpresentation State Transfer (REST) bietet ein leichtes Architekturmodell zur Beschreibung einheitlicher Schnittstellen, das am häufigsten mit HTTP als zugrunde liegendes Transportprotokoll angewendet wird.

REST ist die mit Abstand am weitesten verbreitete Implementierung API-basierter Architekturen.

Postman 2022 State of the API-Bericht

  • REST verfügt über einige sehr grundlegende Regeln, niedrige Einstiegshürden und ein starkes Domänenmodell, sodass die Implementierung relativ einfach ist.
  • Als Schichtensystem wird die Komplexität der Systeme hinter der REST-Schnittstelle abstrahiert. Beispielsweise ist sich der Verbraucher nicht bewusst, dass er mit einem Datenbanksystem hinter einem Webdienst interagiert.
  • REST bietet flexible Unterstützung für Inhaltstypen (einschließlich JSON und YAML).
  • Wenn die OpenAPI-Spezifikation ausreicht, um Form und Struktur von APIs mit Verbrauchern zu teilen.
  • Wann das Caching dynamisch anhand von HTTP-Headern bestimmt werden muss, da Anfragen vom Produzenten an den Konsumenten standardmäßig zustandslos sind.
  • Wenn Sie ein Ressourcenmodell für eine einzelne vom Hersteller bereitgestellte API erweitern oder mithilfe von API-Gateways mehrere APIs unter derselben Basis-URL anbieten.


GraphQL ist eine Open-Source-Datenabfrage- und -bearbeitungssprache für APIs und eine Laufzeitumgebung zum Ausführen dieser Abfragen mit vorhandenen Daten (entwickelt von Facebook und jetzt Teil der Linux Foundation).
  • Bietet eine Abfragesprache für Abfragen in mehreren Quellen. 
  • Ermöglicht Clients, genau die erforderlichen Felder anzufordern, einschließlich Feldern, die sich über mehrere APIs erstrecken, wodurch die erstmalige Ladezeit verkürzt wird.
  • Die Schemasprache gibt die Typen in einzelnen APIs und die Art und Weise an, wie APIs kombiniert werden. Dadurch kann eine einzige Version für alle APIs bereitgestellt werden, was die Versionsverwaltung vereinfacht.
  • Als ergänzende Technologie, die über bestehende Altsysteme gesetzt wird, um die Komplexität zu abstrahieren. 
  • Wenn ein API-Verbraucher einheitlichen Zugriff, Filterung und Abfragen über eine breite Palette miteinander verbundener Dienste benötigt.
  • Mit Mobilgeräten, die durch kleinere Bildschirme und Netzwerkverfügbarkeit eingeschränkt sind.


gRPC ist ein modernes, quelloffenes und leistungsstarkes Remote Procedure Call (RPC)-Framework unter der Leitung der Linux Foundation.
  • Hohe Leistung und Zuverlässigkeit durch die Verwendung von HTTP/2, leichten Protokollpuffern, serialisierten Nutzdaten und zustandsbehafteten Implementierungen.
  • Steckbare Unterstützung für Lastausgleich, Ablaufverfolgung, Integritätsprüfung und Authentifizierung.
  • Hohe Schnittstellenfunktion und Nachrichteninteroperabilität mit umfassender Tool-Unterstützung für alle Sprachen. 
  • Für die letzte Meile des verteilten Rechnens, um Geräte, mobile Apps und Browser mit Backend-Mikroservices zu verbinden und für plattformübergreifende Apps mit Interaktion zwischen Mobilgerät und Desktop/IoT.
  • Für den Container-Zwischenverkehr („Ost-West“).
  • Mit externen Schnittstellen („Nord-Süd“), die Streaming erfordern, und für Streaming-Apps wie Chat, Finanzen, Nachrichten. 

Nach dieser Einführung in die API-Grundlagen werden wir in den folgenden Beiträgen untersuchen, wie man eine API-Architektur erstellt, verwaltet und sichert, bevor wir alles zusammenfügen, indem wir eine Legacy-App für die Cloud auf eine neue Plattform umstellen.

App Protect

Möchten Sie weiterkommen? Laden Sie das eBook noch heute herunter:

API-Architektur meistern | O'Reilly eBook