"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment fonctionnent les API sous le capot

Comment fonctionnent les API sous le capot

Publié le 2024-08-31
Parcourir:888

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).
  • Charge utile : 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 TCP (Transmission Control Protocol). Cela implique un processus en trois étapes connu sous le nom de prise de contact TCP :

  1. SYN : le client envoie une demande 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, complétant ainsi la prise de contact.

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 demande. 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 requête, 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 demande (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 atteint finalement le 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 prise de contact, la connexion est terminée à l'aide d'un processus en quatre étapes :

  1. FIN : le client envoie une demande de fin (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, les paquets perdus 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/d'autorisation : des clés API, des jetons ou des autorisations insuffisantes ou incorrectes ou expirées 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 le fonctionnement d'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. Ainsi, la prochaine fois que vous travaillerez avec une API, souvenez-vous du parcours suivi par vos données et du processus complexe qui rend tout cela possible.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/shanu001x/how-apis-work-under-the-hood-68m?1 En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3