„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie APIs unter der Haube funktionieren

Wie APIs unter der Haube funktionieren

Veröffentlicht am 31.08.2024
Durchsuche:303

APIs (Application Programming Interfaces) sind für die moderne Softwareentwicklung von grundlegender Bedeutung und ermöglichen die Kommunikation verschiedener Systeme miteinander. Aber was passiert, wenn Sie einen API-Endpunkt erreichen? Wie werden die Daten von Ihrer Clientanwendung zum Server und zurück übertragen? In diesem Artikel werden diese Prozesse entmystifiziert, indem der Weg einer API-Anfrage mithilfe visueller Hilfsmittel und zusätzlicher Erklärungen Schritt für Schritt aufgeschlüsselt wird.

1. Der Kunde stellt eine Anfrage

Stellen Sie sich vor, Sie erstellen eine Webanwendung, die Wetterdaten anzeigt. Wenn ein Benutzer auf eine Schaltfläche klickt, um das aktuelle Wetter anzuzeigen, sendet Ihre Anwendung eine Anfrage an einen API-Endpunkt, z. B. https://api.weather.com/current.

Was passiert hier?

  • HTTP-Anfrage: Der Client (Ihre Anwendung) erstellt eine HTTP-Anfrage und gibt dabei die Methode (z. B. GET, POST), die Endpunkt-URL und alle erforderlichen Header (wie Autorisierung oder Inhaltstyp) an.
  • Nutzlast: Wenn es sich um eine POST-Anfrage handelt, kann sie eine Nutzlast enthalten, z. B. ein JSON-Objekt mit Parametern (z. B. { „city“: „New York“ }).

Diese HTTP-Anfrage wird dann über das Internet an den Server gesendet, der die API hostet.

How APIs Work Under the Hood

2. DNS-Suche: Den Server finden

Bevor Ihre Anfrage den Server erreicht, muss dieser zunächst wissen, wohin er gehen soll. Hier kommt das Domain Name System (DNS) ins Spiel.

DNS-Suche: Der Browser oder die Clientanwendung nimmt die Domäne (z. B. api.weather.com) und fragt einen DNS-Server ab, um die entsprechende IP-Adresse zu finden. Diese IP-Adresse ist der tatsächliche Standort des Servers im Internet.

How APIs Work Under the Hood

3. Verbindung herstellen

Da der Client nun weiß, wo sich der Server befindet, muss er eine Verbindung herstellen.

TCP-Handshake: Der Client und der Server stellen eine Verbindung mithilfe des Transmission Control Protocol (TCP) her. Dies beinhaltet einen dreistufigen Prozess, der als TCP-Handshake bekannt ist:

  1. SYN: Der Client sendet eine Synchronisierungsanfrage (SYN) an den Server.
  2. SYN-ACK: Der Server bestätigt diese Anfrage und antwortet mit SYN-ACK.
  3. ACK: Der Client bestätigt die Antwort des Servers und schließt den Handshake ab.

Sobald dieser Handshake abgeschlossen ist, wird die Verbindung hergestellt und Daten können ausgetauscht werden.

How APIs Work Under the Hood

4. Server empfängt die Anfrage

Bei aufgebauter Verbindung wird die HTTP-Anfrage an den Server übermittelt.

Serverseitige Verarbeitung:

  • Routing: Der Server empfängt die Anfrage und leitet sie basierend auf dem Endpunkt an den entsprechenden Handler weiter (z. B. /current in https://api.weather.com/current). Dies kann die Anpassung des URL-Musters an einen bestimmten Controller oder eine bestimmte Funktion beinhalten.
  • Controller-Logik: Der Controller des Servers verarbeitet die Anfrage. Dies kann das Abfragen einer Datenbank zum Abrufen von Daten, das Durchführen von Berechnungen oder Datentransformationen oder das Aufrufen anderer interner Dienste zum Abrufen zusätzlicher Informationen umfassen.
  • Authentifizierung und Autorisierung: Wenn der Endpunkt eine Authentifizierung erfordert, überprüft der Server die Anmeldeinformationen des Clients. Wenn die Anfrage beispielsweise einen API-Schlüssel oder ein Zugriffstoken enthält, prüft der Server dessen Gültigkeit und stellt sicher, dass der Client über die erforderlichen Berechtigungen für den Zugriff auf die angeforderte Ressource verfügt.

5. Antwortvorbereitung

Nach der Verarbeitung der Anfrage bereitet der Server eine Antwort vor.

Antwortobjekt: Der Server erstellt ein HTTP-Antwortobjekt, einschließlich:

  • Statuscode: Zeigt das Ergebnis der Anfrage an (z. B. 200 OK, 404 Nicht gefunden, 500 Interner Serverfehler).
  • Header: Stellen Sie Metadaten zur Antwort bereit, z. B. Content-Type (z. B. application/json) oder Set-Cookie.
  • Body: Enthält die vom Client angeforderten Daten, oft im JSON-Format (z. B. { „temperatur“: „72°F“, „condition“: „Sunny“ }).

6. Antwort zurücksenden

Der Server sendet die HTTP-Antwort über die hergestellte Verbindung an den Client zurück.

Datenübertragung: Diese Antwort wird über das Internet zurückgesendet, möglicherweise über verschiedene Router und Gateways. Es erreicht schließlich den Client, der die Antwort verarbeitet.

How APIs Work Under the Hood

7. Client empfängt und verarbeitet die Antwort

Sobald der Client die Antwort erhält, kann er die Daten verarbeiten und die Benutzeroberfläche aktualisieren.

UI-Update: In unserer Wetteranwendung übernimmt der Client die Temperaturdaten aus der Antwort und aktualisiert die Anzeige, um das aktuelle Wetter anzuzeigen.

Fehlerbehandlung: Wenn etwas schief gelaufen ist (z. B. der Server hat den Statuscode 404 oder 500 zurückgegeben), zeigt der Client möglicherweise eine Fehlermeldung an oder versucht die Anfrage erneut.

8. Verbindungsabbruch

Nachdem der Datenaustausch abgeschlossen ist, wird die Verbindung zwischen Client und Server geschlossen.

TCP-Verbindungsabbau: Ähnlich wie beim Handshake wird die Verbindung in einem vierstufigen Prozess beendet:

  1. FIN: Der Client sendet eine Finish-Anfrage (FIN).
  2. ACK: Der Server bestätigt die FIN-Anfrage.
  3. FIN: Der Server sendet seine eigene FIN-Anfrage.
  4. ACK: Der Client bestätigt die FIN-Anfrage des Servers.

Dieses ordnungsgemäße Herunterfahren stellt sicher, dass beide Seiten die Datenübertragung abgeschlossen haben.

How APIs Work Under the Hood

Fehlerbehebung und häufige Probleme

Obwohl der API-Anfrage-Antwort-Prozess unkompliziert erscheinen mag, können mehrere häufige Probleme auftreten, wie zum Beispiel:

  • Netzwerkfehler: Verbindungszeitüberschreitungen, verlorene Pakete oder andere netzwerkbezogene Probleme können dazu führen, dass die Anfrage den Server oder die Antwort den Client erreicht.
  • Authentifizierungs-/Autorisierungsfehler: Falsche oder abgelaufene API-Schlüssel, Token oder unzureichende Berechtigungen können zu Authentifizierungs- oder Autorisierungsfehlern führen.
  • Serverseitige Fehler: Auf dem Server können Probleme wie Datenbankfehler, Nichtverfügbarkeit von Ressourcen oder Fehler in der serverseitigen Logik auftreten, die zu 5xx-Statuscodes führen.
  • Clientseitige Fehler: Der Client stellt möglicherweise ungültige Anfragen, z. B. durch die Bereitstellung falscher Parameter oder den Versuch, auf nicht vorhandene Ressourcen zuzugreifen, was zu 4xx-Statuscodes führt.

Um diese Probleme zu beheben, können Sie Tools wie Netzwerk-Sniffer, Browser-Entwicklertools und serverseitige Protokolle verwenden, um die Grundursache des Problems zu untersuchen und geeignete Maßnahmen zu seiner Lösung zu ergreifen.

Abschluss

Wenn Sie verstehen, wie eine API unter der Haube funktioniert, können Sie die Komplexität selbst einer einfachen HTTP-Anfrage besser einschätzen. Von DNS-Suchen bis hin zu TCP-Handshakes und serverseitiger Verarbeitung bis hin zu clientseitiger Verarbeitung – jedes Mal, wenn Sie einen API-Endpunkt erreichen, passiert viel.

Wenn Sie als Entwickler ein solides Verständnis dieser Konzepte haben, werden Sie nicht nur ein besserer Programmierer, sondern können auch Probleme effektiver beheben. Wenn Sie also das nächste Mal mit einer API arbeiten, denken Sie an den Weg, den Ihre Daten nehmen, und an den komplizierten Prozess, der all das möglich macht.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/shanu001x/how-apis-work-under-the-hood-68m?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3