"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Cómo funcionan las API internamente

Cómo funcionan las API internamente

Publicado el 2024-08-31
Navegar:540

Las API (interfaces de programación de aplicaciones) son fundamentales para el desarrollo de software moderno, ya que permiten que diferentes sistemas se comuniquen entre sí. Pero, ¿qué sucede cuando llegas a un punto final API? ¿Cómo se mueven los datos desde su aplicación cliente al servidor y viceversa? Este artículo desmitificará estos procesos y desglosará el recorrido de una solicitud de API paso a paso, con la ayuda de ayudas visuales y explicaciones adicionales.

1. El Cliente Realiza una Solicitud

Imagina que estás creando una aplicación web que muestra datos meteorológicos. Cuando un usuario hace clic en un botón para ver el clima actual, su aplicación envía una solicitud a un punto final API, como https://api.weather.com/current.

¿Qué pasa aquí?

  • Solicitud HTTP: el cliente (su aplicación) crea una solicitud HTTP, especificando el método (por ejemplo, GET, POST), la URL del punto final y los encabezados necesarios (como Autorización o Tipo de contenido).
  • Carga útil: si se trata de una solicitud POST, puede incluir una carga útil, como un objeto JSON con parámetros (por ejemplo, { "ciudad": "Nueva York" }).

Esta solicitud HTTP luego se envía a través de Internet al servidor que aloja la API.

How APIs Work Under the Hood

2. Búsqueda de DNS: encontrar el servidor

Antes de que su solicitud llegue al servidor, primero debe saber adónde ir. Aquí es donde entra en juego el Sistema de nombres de dominio (DNS).

Búsqueda de DNS: el navegador o la aplicación cliente toma el dominio (por ejemplo, api.weather.com) y consulta un servidor DNS para encontrar su dirección IP correspondiente. Esta dirección IP es la ubicación real del servidor en Internet.

How APIs Work Under the Hood

3. Estableciendo una conexión

Ahora que el cliente sabe dónde está el servidor, necesita establecer una conexión.

Apretón de manos TCP: el cliente y el servidor establecen una conexión utilizando el Protocolo de control de transmisión (TCP). Esto implica un proceso de tres pasos conocido como protocolo de enlace TCP:

  1. SYN: El cliente envía una solicitud de sincronización (SYN) al servidor.
  2. SYN-ACK: El servidor reconoce esta solicitud y responde con SYN-ACK.
  3. ACK: El cliente reconoce la respuesta del servidor, completando el protocolo de enlace.

Una vez que se completa este protocolo de enlace, se establece la conexión y se pueden intercambiar datos.

How APIs Work Under the Hood

4. El servidor recibe la solicitud

Con la conexión establecida, la solicitud HTTP se transmite al servidor.

Procesamiento del lado del servidor:

  • Enrutamiento: el servidor recibe la solicitud y la enruta al controlador apropiado según el punto final (por ejemplo, /current en https://api.weather.com/current). Esto puede implicar hacer coincidir el patrón de URL con un controlador o función específica.
  • Lógica del controlador: el controlador del servidor procesa la solicitud. Esto podría implicar consultar una base de datos para recuperar datos, realizar cálculos o transformaciones de datos, o llamar a otros servicios internos para obtener información adicional.
  • Autenticación y autorización: si el punto final requiere autenticación, el servidor verifica las credenciales del cliente. Por ejemplo, si la solicitud incluye una clave API o un token de acceso, el servidor verifica su validez y garantiza que el cliente tenga los permisos necesarios para acceder al recurso solicitado.

5. Preparación de respuesta

Después de procesar la solicitud, el servidor prepara una respuesta.

Objeto de respuesta: el servidor crea un objeto de respuesta HTTP, que incluye:

  • Código de estado: Indica el resultado de la solicitud (p. ej., 200 OK, 404 No encontrado, 500 Error interno del servidor).
  • Encabezados: proporciona metadatos sobre la respuesta, como tipo de contenido (por ejemplo, aplicación/json) o conjunto de cookies.
  • Cuerpo: Contiene los datos solicitados por el cliente, a menudo en formato JSON (p. ej., { "temperatura": "72°F", "condición": "Soleado" }).

6. Enviar la respuesta

El servidor envía la respuesta HTTP al cliente a través de la conexión establecida.

Transmisión de datos: Esta respuesta viaja a través de Internet, pasando potencialmente a través de varios enrutadores y puertas de enlace. Finalmente llega al cliente, que procesa la respuesta.

How APIs Work Under the Hood

7. El cliente recibe y procesa la respuesta

Una vez que el cliente recibe la respuesta, puede procesar los datos y actualizar la interfaz de usuario.

Actualización de UI: en nuestra aplicación meteorológica, el cliente toma los datos de temperatura de la respuesta y actualiza la pantalla para mostrar el clima actual.

Manejo de errores: si algo salió mal (por ejemplo, el servidor devolvió un código de estado 404 o 500), el cliente podría mostrar un mensaje de error o volver a intentar la solicitud.

8. Terminación de la conexión

Una vez completado el intercambio de datos, la conexión entre el cliente y el servidor se cierra.

Terminación de la conexión TCP: similar al protocolo de enlace, la conexión finaliza mediante un proceso de cuatro pasos:

  1. FIN: El cliente envía una solicitud de finalización (FIN).
  2. ACK: El servidor reconoce la solicitud FIN.
  3. FIN: El servidor envía su propia solicitud FIN.
  4. ACK: El cliente reconoce la solicitud FIN del servidor.

Este cierre ordenado garantiza que ambas partes hayan terminado de transmitir datos.

How APIs Work Under the Hood

Solución de problemas y problemas comunes

Si bien el proceso de solicitud-respuesta de la API puede parecer sencillo, pueden surgir varios problemas comunes, como:

  • Errores de red: Los tiempos de espera de conexión, la pérdida de paquetes u otros problemas relacionados con la red pueden impedir que la solicitud llegue al servidor o que la respuesta llegue al cliente.
  • Errores de autenticación/autorización: Las claves o tokens de API incorrectos o caducados o los permisos insuficientes pueden provocar errores de autenticación o autorización.
  • Errores del lado del servidor: el servidor puede encontrar problemas como fallas en la base de datos, falta de disponibilidad de recursos o errores en la lógica del lado del servidor, lo que genera códigos de estado 5xx.
  • Errores del lado del cliente: el cliente puede realizar solicitudes no válidas, como proporcionar parámetros incorrectos o intentar acceder a recursos inexistentes, lo que genera códigos de estado 4xx.

Para solucionar estos problemas, puedes utilizar herramientas como rastreadores de red, herramientas de desarrollo de navegadores y registros del lado del servidor para investigar la causa raíz del problema y tomar las medidas adecuadas para resolverlo.

Conclusión

Comprender cómo funciona una API en su interior le ayuda a apreciar las complejidades involucradas incluso en una simple solicitud HTTP. Desde búsquedas de DNS hasta protocolos de enlace TCP y desde el procesamiento del lado del servidor hasta el manejo del lado del cliente, suceden muchas cosas cada vez que accedes a un punto final API.

Como desarrollador, tener una comprensión sólida de estos conceptos no solo lo convertirá en un mejor codificador, sino que también lo ayudará a depurar problemas de manera más efectiva. Así que la próxima vez que trabajes con una API, recuerda el recorrido que realizan tus datos y el complejo proceso que lo hace posible.

Declaración de liberación Este artículo se reproduce en: https://dev.to/shanu001x/how-apis-work-under-the-hood-68m?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3