Maison > interface Web > js tutoriel > Comment fonctionnent les API sous le capot

Comment fonctionnent les API sous le capot

WBOY
Libérer: 2024-08-21 06:09:32
original
906 Les gens l'ont consulté

Les API (Application Programming Interfaces) sont fondamentales pour le développement de logiciels modernes, permettant à différents systèmes de communiquer entre eux. Mais que se passe-t-il lorsque vous atteignez un point de terminaison d'API ? Comment les données sont-elles déplacées de votre application client vers le serveur et vice-versa ? Cet article démystifiera ces processus, en décomposant étape par étape le parcours d'une requête API, à l'aide d'aides visuelles et d'explications supplémentaires.

1. Le Client fait une demande

Imaginez que vous créez une application Web qui affiche des données météorologiques. Lorsqu'un utilisateur clique sur un bouton pour voir la météo actuelle, votre application envoie une requête à un point de terminaison d'API, comme https://api.weather.com/current.

Que se passe-t-il ici ?

  • Requête HTTP : le client (votre application) crée une requête HTTP, spécifiant la méthode (par exemple, GET, POST), l'URL du point de terminaison et tous les en-têtes nécessaires (comme l'autorisation ou le type de contenu).
  • Payload : s'il s'agit d'une requête POST, elle peut inclure une charge utile, telle qu'un objet JSON avec des paramètres (par exemple, { "city": "New York" }).

Cette requête HTTP est ensuite envoyée sur internet au serveur hébergeant l'API.

How APIs Work Under the Hood

2. Recherche DNS : trouver le serveur

Avant que votre requête n'atteigne le serveur, celui-ci doit d'abord savoir où aller. C'est là qu'intervient le système de noms de domaine (DNS).

Recherche DNS : le navigateur ou l'application client prend le domaine (par exemple, api.weather.com) et interroge un serveur DNS pour trouver son adresse IP correspondante. Cette adresse IP est l'emplacement réel du serveur sur Internet.

How APIs Work Under the Hood

3. Établir une connexion

Maintenant que le client sait où se trouve le serveur, il doit établir une connexion.

TCP Handshake : Le client et le serveur établissent une connexion à l'aide du protocole de contrôle de transmission (TCP). Cela implique un processus en trois étapes connu sous le nom de poignée de main TCP :

  1. SYN : Le client envoie une requête de synchronisation (SYN) au serveur.
  2. SYN-ACK : Le serveur accuse réception de cette demande et répond par SYN-ACK.
  3. ACK : le client accuse réception de la réponse du serveur et termine la poignée de main.

Une fois cette prise de contact terminée, la connexion est établie et les données peuvent être échangées.

How APIs Work Under the Hood

4. Le serveur reçoit la demande

Une fois la connexion établie, la requête HTTP est transmise au serveur.

Traitement côté serveur :

  • Routage : le serveur reçoit la requête et l'achemine vers le gestionnaire approprié en fonction du point de terminaison (par exemple, /current dans https://api.weather.com/current). Cela peut impliquer de faire correspondre le modèle d'URL à un contrôleur ou une fonction spécifique.
  • Controller Logic : Le contrôleur du serveur traite la requête. Cela peut impliquer d'interroger une base de données pour récupérer des données, d'effectuer des calculs ou des transformations de données, ou d'appeler d'autres services internes pour récupérer des informations supplémentaires.
  • Authentification et autorisation : si le point de terminaison nécessite une authentification, le serveur vérifie les informations d'identification du client. Par exemple, si la requête inclut une clé API ou un jeton d'accès, le serveur vérifie sa validité et s'assure que le client dispose des autorisations nécessaires pour accéder à la ressource demandée.

5. Préparation de la réponse

Après avoir traité la demande, le serveur prépare une réponse.

Objet de réponse : Le serveur crée un objet de réponse HTTP, comprenant :

  • Code d'état : Indique le résultat de la requête (par exemple, 200 OK, 404 Not Found, 500 Internal Server Error).
  • En-têtes : fournissez des métadonnées sur la réponse, telles que Content-Type (par exemple, application/json) ou Set-Cookie.
  • Corps : Contient les données demandées par le client, souvent au format JSON (par exemple, { "temperature": "72°F", "condition": "Ensoleillé" }).

6. Renvoi de la réponse

Le serveur renvoie la réponse HTTP au client via la connexion établie.

Transmission de données : cette réponse revient via Internet, en passant potentiellement par divers routeurs et passerelles. Il parvient enfin au client, qui traite la réponse.

How APIs Work Under the Hood

7. Le client reçoit et traite la réponse

Une fois que le client reçoit la réponse, il peut traiter les données et mettre à jour l'interface utilisateur.

Mise à jour de l'interface utilisateur : dans notre application météo, le client prend les données de température de la réponse et met à jour l'affichage pour afficher la météo actuelle.

Gestion des erreurs : si quelque chose ne va pas (par exemple, le serveur a renvoyé un code d'état 404 ou 500), le client peut afficher un message d'erreur ou réessayer la demande.

8. Résiliation de la connexion

Une fois l'échange de données terminé, la connexion entre le client et le serveur est fermée.

Résiliation de la connexion TCP : Semblable à la poignée de main, la connexion est terminée à l'aide d'un processus en quatre étapes :

  1. FIN : Le client envoie une demande de finition (FIN).
  2. ACK : Le serveur accuse réception de la requête FIN.
  3. FIN : Le serveur envoie sa propre requête FIN.
  4. ACK : Le client accuse réception de la requête FIN du serveur.

Cet arrêt ordonné garantit que les deux parties ont fini de transmettre les données.

How APIs Work Under the Hood

Dépannage et problèmes courants

Bien que le processus de requête-réponse de l'API puisse sembler simple, plusieurs problèmes courants peuvent survenir, tels que :

  • Erreurs réseau : les délais d'attente de connexion, la perte de paquets ou d'autres problèmes liés au réseau peuvent empêcher la demande d'atteindre le serveur ou la réponse d'atteindre le client.
  • Échecs d'authentification/autorisation : des clés API, des jetons ou des autorisations insuffisantes ou incorrects ou expirés peuvent entraîner des erreurs d'authentification ou d'autorisation.
  • Erreurs côté serveur : le serveur peut rencontrer des problèmes tels que des pannes de base de données, l'indisponibilité des ressources ou des bogues dans la logique côté serveur, entraînant des codes d'état 5xx.
  • Erreurs côté client : le client peut effectuer des demandes non valides, telles que la fourniture de paramètres incorrects ou la tentative d'accès à des ressources inexistantes, conduisant à des codes d'état 4xx.

Pour résoudre ces problèmes, vous pouvez utiliser des outils tels que des renifleurs de réseau, des outils de développement de navigateur et des journaux côté serveur pour rechercher la cause première du problème et prendre les mesures appropriées pour le résoudre.

Conclusion

Comprendre comment fonctionne une API sous le capot vous aide à apprécier les complexités impliquées, même dans une simple requête HTTP. Des recherches DNS aux poignées de main TCP, en passant par le traitement côté serveur et la gestion côté client, il se passe beaucoup de choses à chaque fois que vous accédez à un point de terminaison d'API.

En tant que développeur, avoir une solide compréhension de ces concepts fera non seulement de vous un meilleur codeur, mais vous aidera également à déboguer les problèmes plus efficacement. Alors la prochaine fois que vous travaillerez avec une API, souvenez-vous du parcours parcouru par vos données et du processus complexe qui rend tout cela possible.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal