Definition

Synchrone/asynchrone API

Synchrone und asynchrone APIs sind Programmierschnittstellen, die Daten für einen Request (Anfrage) entweder sofort oder zu einem späteren Zeitpunkt zurückgeben. Synchrone/asynchrone APIs bieten eine Möglichkeit, sofortige oder geplante Anfragen nach Ressourcen, Daten oder Diensten zu stellen, wenn diese verfügbar sind.

Anwendungen fordern Daten an und warten, bis ein Wert zurückgegeben wird. Die synchrone oder asynchrone Art einer API ist eine Funktion, die den Zeitrahmen zwischen dem Request und der Rückgabe der Daten definiert.

Was ist der Unterschied zwischen synchronen und asynchronen APIs?

Synchrone und asynchrone APIs unterscheiden sich auf folgende Weise:

Synchrone APIs. Bei synchronen APIs wird erwartet, dass die Daten sofort zurückgegeben werden. Eine API ist in der Regel synchron, wenn die Verfügbarkeit von Daten oder Diensten, Ressourcen und Konnektivität hoch sind und eine geringe Latenzzeit erforderlich ist.

Asynchrone APIs. Bei einem asynchronen Prozess ist die Verfügbarkeit einer Ressource, eines Dienstes oder eines Datenspeichers möglicherweise nicht sofort gegeben. Die API muss unter Umständen auf eine Backend-Antwort warten. Diese APIs können eine Callback-Benachrichtigung an den Anforderer senden, wenn die angeforderte Ressource bereit ist. Asynchrone Anfragen sind nützlich, um die Funktionalität einer Anwendung aufrechtzuerhalten, anstatt ihre Ressourcen durch das Warten auf eine Anfrage zu binden. Eine API kann asynchron sein, wenn die Verfügbarkeit von Daten oder Diensten und die Konnektivität gering oder durch die Nachfrage übersättigt ist.

Wie funktionieren synchrone und asynchrone APIs?

Eine Möglichkeit, die Funktionsweise von synchronen und asynchronen Funktionen zu verstehen, ist die Untersuchung der Kommunikation. Bei der synchronen Kommunikation sind die Beteiligten in Echtzeit miteinander verbunden, wie zum Beispiel bei einem Telefongespräch. Die beiden Parteien kommunizieren im gleichen Zeitrahmen hin und her.

E-Mail ist ein Beispiel für asynchrone Kommunikation. Der Absender sendet seine Nachricht, aber der Empfänger antwortet möglicherweise erst nach einiger Zeit.

Im ersten Beispiel, einem Telefongespräch, sind beide Parteien synchronisiert, um Echtzeitkommunikation zu ermöglichen. In einem asynchronen Kommunikationsbeispiel gibt es eine angenommene Zeitverzögerung oder Zeitüberschreitung, während der Empfänger der Nachricht eine Rückmeldung vorbereitet und sendet.

In Abbildung 1 ist eine synchrone API-Anforderung dargestellt. Der synchrone API-Aufruf erwartet eine zeitabhängige Antwort von der Client-Anwendung. Normalerweise wartet der Anfragende, bis er eine Antwort vom System erhält.

synchrone API
Abbildung 1: Synchrone APIs liefern eine Antwort mit minimaler Zeitverzögerung.

Im Gegensatz dazu stellt der Benutzer bei einem asynchronen Vorgang eine Anfrage für einen Dienst und ist darauf vorbereitet, die Antwort des Systems später zu erhalten. Ein Parameter in der App legt einen Zeitrahmen für die Lieferung einer geplanten Antwort fest, zum Beispiel innerhalb einer Stunde, oder die App kann einen flexiblen Zeitrahmen für die Lieferung der Antwort durch das System verwenden.

asynchrone API
Abbildung 2: Bei einem asynchronen API-Aufruf vergeht eine gewisse Mindestzeit, bevor eine Antwort zurückgegeben wird.

Hybride asynchrone und synchrone APIs

Die Beschaffenheit eines Systems und das Benutzererlebnis basieren häufig auf der synchronen oder asynchronen Bereitstellung von Informationen. Bei der synchronen Bereitstellung können Systemressourcen gebunden sein, bis die Benutzeranforderung geliefert wird. Bei der asynchronen Zustellung werden zunächst weniger Systemressourcen benötigt, wenn die Antworten zu einem Zeitpunkt geliefert werden können, zu dem mehr Systemressourcen verfügbar sind.

In beiden Fällen bestimmen die Benutzeranforderungen, welcher Ansatz am besten geeignet ist.

Es ist möglich, ein System zu konfigurieren, das beide Techniken in einer hybriden Anordnung kombiniert, die zusätzliche Flexibilität bietet und die Ressourcennutzung optimiert. Ein hybrides System unterstützt HTTP- und Messaging-Protokolle in Echtzeit. Die Verwendung von synchronen und asynchronen Methoden kann zu einer Anwendungsumgebung führen, in der die Systemressourcen am effektivsten genutzt werden.

Diese Definition wurde zuletzt im Oktober 2022 aktualisiert

Erfahren Sie mehr über Softwareentwicklung