Ein API Endpoint ist ein digitaler Ort, an dem eine Programmierschnittstelle (API) API-Aufrufe, auch bekannt als API-Anfragen, für Ressourcen auf ihrem Server empfängt. API Endpoint sind Komponenten von APIs und liegen meist in Form von URLs oder Unified Resource Locators vor.
Eine API ist ein Vermittler, der es Softwareanwendungen ermöglicht, miteinander zu kommunizieren, um Daten, Features und Funktionen auszutauschen. Es handelt sich um eine Reihe von Protokollen und Regeln, die festlegen, wie ein API-Client – die Software, die eine Anfrage stellt – mit einem Server kommunizieren kann, um auf Daten und Funktionen zuzugreifen. Durch die Verwendung einer API können Entwickler bereits vorhandene Daten und Services nutzen; und Anwendungseigentümer können dieselben Daten und Dienste gemeinsam nutzen oder vermarkten.
Endpoints funktionieren ein wenig wie Telefonnummern: So wie ein Benutzer eine Telefonnummer wählt, um eine bestimmte Person oder ein bestimmtes Unternehmen zu erreichen, stellen API-Clients (die Software, die einen API-Aufruf durchführt) eine Endpunkt-URL bereit, um eine bestimmte Ressource zu erreichen. Eine Endpoint URL gibt den Standort einer Ressource auf einem API-Server an und hilft dabei, den API-Client mit der angeforderten Ressource zu verbinden. Es teilt dem Server im Wesentlichen mit, dass „die Ressource, die ich benötige, sich hier befindet“.
API Endpoint können es einem API-Client ermöglichen, alle Arten von Daten von einer API anzufordern. Die Anwendungsfälle reichen von Echtzeit-Updates aus Social-Media-Softwareanwendungen bis hin zu Funktionen wie Audio- oder Videoeinbettung, Abrufen von Nachrichten oder Erstellen eines neuen Beitrags.
Richtig formatierte und sichere API Endpoints sind ein wichtiger Bestandteil der Funktionsweise von APIs. APIs vereinfachen das Design und die Entwicklung neuer Anwendungen und Dienste (weil sie es Entwicklern ermöglichen, auf bestehenden Funktionen und Diensten aufzubauen) sowie die Integration und Verwaltung vorhandener Anwendungen und Dienste. Sie bieten auch erhebliche Vorteile für Entwickler und Unternehmen im Allgemeinen, darunter eine verbesserte Zusammenarbeit, beschleunigte Innovation, mehr Flexibilität, Skalierbarkeit, Sicherheit und vieles mehr. API Endpoints ermöglichen den Ressourcenaustausch, der eine solche Integration möglich macht.
Damit APIs so funktionieren, wie sie sollten, müssen API Endpoints präzise, intuitiv, auffindbar und authentifiziert sein. Andernfalls kann die Kommunikation zwischen Client und Server ausfallen, was die Funktionalität und die Benutzerzufriedenheit einschränkt. Einfach ausgedrückt: API Endpoints ermöglichen es API-Clients, angeforderte Ressourcen und Funktionen erfolgreich zu finden und darauf zuzugreifen.
API Endpoints finden sich normalerweise in der Dokumentation einer API, in der Entwickler API-Informationen angeben, z. B. welche Art von Anfragen eine API akzeptiert und wie Anfragen formatiert werden sollten. Idealerweise enthält diese Dokumentation auch eine Liste aller verfügbaren API-Endpunkte und eine kurze Beschreibung ihrer Funktionen.
In einem REST-API-Kontext (ein Software-Architekturstil, der häufig für Webanwendungen verwendet wird) sieht der Prozess wie folgt aus:
Der Prozess startet, wenn ein API-Client eine Ressourcenanforderung (API-Aufruf) an den entsprechenden API-Endpunkt sendet. Der Zugriff auf Endpunkte erfolgt mithilfe von HTTP-Anforderungsmethoden wie POST, GET, PUT, PATCH und DELETE. Diese Methoden geben die Aktion an, die der Kunde für die angegebene Ressource ausführen möchte.
Wenn ein Kunde beispielsweise eine Liste der olympischen Medaillen für ein bestimmtes Jahr aus der hypothetischen Datenbank Olympicfacts.com abrufen möchte, wird eine GET-Anforderung an die folgende Endpunkt-URL gesendet:
https://api.olympicfacts.com/v1/{year}
Diese Anfrage würde eine Liste aller olympischen Medaillen nach Land wiedergeben. (v1 in unserem hypothetischen Endpunkt gibt die Version der API an, eine gängige Praxis bei der API-Versionierung.) Wenn der Kunde die Gesamtsumme für ein bestimmtes Land in einem bestimmten Jahr wissen möchte, wird der Basis-URL eine Kennung hinzugefügt:
https://api.olympicfacts.com/v1/year/{id}
In diesem Beispiel wird die Kennung {id} verwendet, um anzugeben, über welches Land der Kunde Informationen erhalten möchte.
Darüber hinaus kann eine Anfrage Folgendes enthalten:
Sobald der Server die Anfrage authentifiziert und die Eingabe validiert hat, ruft er die angeforderten Daten ab und gibt die Antwort an den Client zurück. Viele Unternehmen verwenden API Gateways, um diese Funktionen auszuführen und den Fluss des API-Datenverkehrs zu verwalten.
Eine REST-API (auch RESTful-API oder RESTful-Web-API genannt) ist eine API, die den Designprinzipien des Architekturstils „ Representational State Transfer “ (REST) entspricht.1 GraphQL ist eine Open-Source-Abfragesprache und serverseitige Laufzeit, die festlegt, wie Clients mit APIs interagieren sollen.2
GraphQL und REST sind beide ressourcenbasierte Technologien, die ähnliche Datenformate unterstützen (JSON und XML, zum Beispiel) und es Kunden ermöglichen, Daten von Servern mithilfe von HTTP-Methoden anzufordern. Sie unterscheiden sich jedoch unter anderem in ihren Abfrageanforderungen und dem Datenabruf. Wir konzentrieren uns auf einen wichtigen endpunktbezogenen Unterschied.
REST-APIs verwenden mehrere Endpunkte und haben für jede Ressource unterschiedliche Endpunkte. Wenn ein Client eine Ressource anfordert, gibt der Server alle Daten zurück, die der Ressource zugeordnet sind, auch wenn der Client nur eine kleine Teilmenge der Daten benötigt. Dies wird als Overfetching bezeichnet. Wenn ein Client Daten benötigt, die auf mehrere Ressourcen verteilt sind, muss er separate API-Aufrufe an jede dieser Ressourcen durchführen, um die benötigten Daten zu kompilieren.
GraphQL stellt Datenmodelle über einen einzigen Endpunkt bereit und verwendet eine Syntax, die es Clients ermöglicht, API-Anfragen in einer oder wenigen Zeilen zu stellen, um genau anzugeben, was sie benötigen. GraphQL-Abfragen können Referenzen zwischen Ressourcen folgen und komplexe Datenabrufaufgaben in einer einzigen Anfrage ausführen. Dies trägt dazu bei, Probleme mit zu wenig und zu viel Abrufen zu vermeiden und mehrere API-Aufrufe durchzuführen.
Weder REST- noch GraphQL-APIs sind von Natur aus überlegen; es sind unterschiedliche Tools, die für unterschiedliche Aufgaben geeignet sind.3
Der Schlüssel zu jedem guten API-Design ist die Testphase. Moderne Anwendungen nutzen oft APIs, um Funktionen von anderer Software zu integrieren, oder werden mithilfe von Microservices-Architekturen erstellt (die auf APIs für die Kommunikation zwischen verteilten Services angewiesen sind). Das Testen von API-Endpunkten ist für die Gewährleistung der Zuverlässigkeit unerlässlich.
Es gibt sowohl manuelle Testoptionen für APIs als auch Testoptionen, die eine Automatisierung verwenden, sowie zahlreiche Testtools und Plattformen (sowohl Open Source als auch proprietäre), die Unternehmen verwenden können.
Manuelle API Endpointtests können langsamer und weniger effizient sein, sind aber auch präziser und auf spezifische Anwendungsfälle zugeschnitten. Bei funktionalen Tests wird einfach eine Anfrage aus einer Anwendung gesendet, um sicherzustellen, dass die richtige Antwort gegeben wird. In einem Beispiel für soziale Medien könnte dies bedeuten, dass Sie eine Anfrage nach einem neuen Beitrag eines bestimmten Benutzers senden und überprüfen, ob der zurückgegebene Beitrag tatsächlich der richtige ist.
Andere Arten von manuellen Tests umfassen:
Automatisierte Tests, die über eine API Management- Plattform durchgeführt werden, können mehrere Vorteile bieten:
Im Allgemeinen sollte immer die gewünschte Antwort zurückgegeben werden, was das Format, die zurückgegebenen Daten und den Statuscode betrifft.
Da API-Endpunkte sowohl internen als auch externen Anwendungen und Systemen die Möglichkeit bieten, auf Daten zuzugreifen und diese zu integrieren, stellen sie auch einen potenziellen Einstiegspunkt für böswillige Akteure dar. Distributed Denial of Service (DDoS)-Angriffe können legitime Anfragen in absurden Mengen verwenden, um einen Server zu überfluten. Andere Arten von Angriffen könnten versuchen, mithilfe von API-Endpunkten mehr Informationen zu extrahieren, als der Client empfangen darf, oder API-Endpunkte zu nutzen, um Malware oder bösartigen Code zu installieren.
Es gibt mehrere Möglichkeiten, wie ein Unternehmen die Sicherheit seiner API-Endpunkte und die gesamte API-Sicherheit gewährleisten kann, darunter:
Authentifizierungsmethoden wie API-Schlüsselauthentifizierung und OAuth stellen sicher, dass nur autorisierte Benutzer auf Daten zugreifen können.
HTTPS (eine sicherere Version des Hypertext Transfer Protocol oder HTTP) verwendet Transport Layer Security (TLS), um die Kommunikation zwischen Client und Server zu verschlüsseln. Dies erhöht die Sicherheit der Datenübertragungen.
Ratenbegrenzung ist ein allgemeiner Begriff, der sich auf Bemühungen bezieht, eine maximale Anzahl von Anfragen festzulegen, was dazu beitragen kann, DDoS-Angriffe zu verhindern und die Systemstabilität aufrechtzuerhalten. Verschiedene Grenzwerte können auch auf verschiedene API-Endpunkte angewendet werden.
Wenn Angriffe von einem bestimmten Standort aus generiert werden, kann Geofilterung verwendet werden, um den Zugriff von diesen Standorten aus zu blockieren oder einzuschränken.
Ein API-Gateway ist eine Software-Ebene, die als Vermittler zwischen Client-Geräten und Servern fungiert. Es ist ein zentraler Punkt, der alle API-Aufrufe entgegennimmt und sie an die gewünschten Dienste weiterleitet. Viele dieser Sicherheitsfunktionen (zusätzlich zu den Funktionen API Monitoring und Analyse) können in einem API-Gateway implementiert werden, und die Verwendung eines Gateways fördert die konstante Anwendung von Sicherheitsprotokollen in einer API-Umgebung.
API-Ressourcen sind Datensätze oder Objekte, die APIs bereitstellen. Die Ressourcen variieren je nach der jeweiligen API, aber zu den Inhaltstypen gehören Text, Tabellen, Quelldateien, Audio, Video, Bilder, Benutzer, Produkte und vieles mehr.
Ein API-Endpunkt ist der spezifische Standort dieser Ressourcen auf einem Server. Es ist ein Kontaktpunkt zwischen einem API-Client und einem Server, an den API-Aufrufe geleitet werden.
Stellen Sie sich einen Brancheneintrag für ein Geschäft vor. Die Auflistung enthält den Standort des Geschäfts (Endpunkt) und wie Sie es kontaktieren können, um Informationen wie Öffnungszeiten und Produktbestand (Ressourcen) zu erhalten.
Ein API-Schlüssel ist eine Methode zum Überprüfen und Authentifizieren der Identität und Authentizität eines Clients, der einen API-Aufruf tätigt. API-Schlüssel sind Zeichenfolgen aus zufällig generierten Zeichen, die von einem API-Anbieter an registrierte API-Benutzer ausgegeben werden. Wenn ein Client-Gerät einen API-Aufruf tätigt, schließt es den API-Schlüssel ein. Das API-Gateway oder der API-Server, der den Anruf empfängt, überprüft zuerst den Schlüssel, um die Identität des Clients zu bestätigen, bevor die API-Anforderung erfüllt wird. Wenn der Schlüssel mit keinem der zulässigen Schlüssel übereinstimmt, lehnt der Server den API-Aufruf ab und gibt eine Ablehnungsnachricht aus.
Unternehmen verwenden API-Schlüssel, um einzelne Kunden und Projekte zu authentifizieren, Verkehrsmuster zu verfolgen und zu identifizieren, unerwünschte Nutzung zu blockieren und vieles mehr.
API-Endpunkte fungieren, wie bereits erwähnt, als Schnittstelle zwischen Clients und Servern, an die API-Clients Anforderungen für bestimmte Daten oder Funktionen von einer API weiterleiten. API-Schlüssel können verwendet werden, um die Sicherheit der gesamten API-Umgebung eines Unternehmens und ihrer API-Integrationen zu verbessern.
KI-gestützte Automatisierung skaliert die Agilität über APIs, Apps, Events, Dateien und B2B/EDI hinweg.
Erschließen Sie Ihr Geschäftspotenzial mit IBM Integrationslösungen, die Anwendungen und Systeme für den schnellen und sicheren Zugriff auf wichtige Daten verbinden.
Schalten Sie neue Funktionen frei und steigern Sie die geschäftliche Agilität mit IBM Cloud Consulting Services. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.
1 „Was ist eine REST-API?“, IBM.com
2 „Was ist GraphQL?“, Chrystal China, Michael Goodwin, 8. Dezember 2023
3 „GraphQL vs. REST API: Was ist der Unterschied?“, Chrystal China, 29. März 2024