Saltar al contenido principal

API

Una API (Interfaz de Programación de Aplicaciones) es un conjunto de reglas y definiciones que permite que diferentes programas se comuniquen entre sí. Las APIs facilitan la integración de servicios y el intercambio de datos, permitiendo que aplicaciones externas accedan a funcionalidades específicas sin necesidad de conocer los detalles internos de su implementación. Son fundamentales en el desarrollo moderno, ya que promueven la interoperabilidad y la reutilización de software.


Cómo funcionan las APIs

Las APIs funcionan como intermediarios entre diferentes aplicaciones o servicios. Cuando una aplicación quiere acceder a una funcionalidad o datos de otra, envía una solicitud a la API correspondiente. La API procesa esta solicitud, realiza las operaciones necesarias y devuelve una respuesta con los datos o resultados solicitados.

Diagrama de cómo funciona una API

Tipos de APIs

Existen varios tipos de APIs, entre los más comunes se encuentran:

  • APIs REST (Representational State Transfer)
    Utilizan el protocolo HTTP y son ampliamente utilizadas en aplicaciones web. Son conocidas por su simplicidad y escalabilidad.

  • APIs SOAP (Simple Object Access Protocol)
    Utilizan XML para el intercambio de datos y son más rígidas en su estructura. Son comunes en entornos empresariales.

  • APIs GraphQL
    Permiten a los clientes solicitar exactamente los datos que necesitan, lo que puede reducir la cantidad de datos transferidos y mejorar la eficiencia.

  • APIs de bibliotecas y frameworks
    Proveen funciones y métodos específicos para ser utilizados dentro de un lenguaje de programación o entorno de desarrollo.


Ejemplos de uso de APIs

  • Redes sociales:
    Muchas plataformas como Twitter, Facebook e Instagram ofrecen APIs que permiten a los desarrolladores acceder a datos de usuarios, publicaciones y otros recursos.

  • Servicios de pago:
    APIs como Stripe o PayPal permiten integrar funcionalidades de pago en aplicaciones web y móviles.

  • Mapas y geolocalización:
    APIs como Google Maps permiten a los desarrolladores incorporar mapas, rutas y servicios de geolocalización en sus aplicaciones.

  • Datos meteorológicos:
    APIs como OpenWeatherMap proporcionan acceso a datos meteorológicos en tiempo real y pronósticos.


Protocolo HTTP

El Protocolo de Transferencia de Hipertexto (HTTP) es el protocolo fundamental utilizado en la web para la comunicación entre clientes (como navegadores web) y servidores. HTTP define cómo se formatean y transmiten los mensajes, y cómo los servidores y navegadores deben responder a diversas solicitudes.

Petición HTTP

Una petición HTTP es un mensaje enviado por el cliente al servidor para solicitar un recurso o realizar una acción. Una petición HTTP típica consta de:

Estructura de una petición HTTP

Métodos HTTP

Los métodos HTTP indican la acción que se desea realizar en un recurso específico. Los métodos más comunes son:

  • GET: Solicita la representación de un recurso específico. No debe tener efectos secundarios y es seguro para recuperar datos.
  • POST: Envía datos al servidor para crear un nuevo recurso. Puede tener efectos secundarios y no es seguro para recuperar datos.
  • PUT: Actualiza un recurso existente o crea uno nuevo si no existe. Es idempotente, lo que significa que múltiples solicitudes con el mismo dato producirán el mismo resultado.
  • DELETE: Elimina un recurso específico. También es idempotente.
  • PATCH: Aplica modificaciones parciales a un recurso existente. No es idempotente.

Códigos de estado HTTP

Los códigos de estado HTTP son respuestas estándar que indican el resultado de una petición HTTP. Se dividen en cinco categorías principales:

  • 1xx (Informativos): Indican que la solicitud ha sido recibida y el proceso continúa.
  • 2xx (Éxito): Indican que la solicitud fue exitosa. Ejemplo: 200 OK, 201 Created.
  • 3xx (Redirección): Indican que se requiere una acción adicional para completar la solicitud. Ejemplo: 301 Moved Permanently, 302 Found.
  • 4xx (Errores del cliente): Indican que hubo un error en la solicitud del cliente. Ejemplo: 400 Bad Request, 401 Unauthorized, 404 Not Found.
  • 5xx (Errores del servidor): Indican que el servidor falló al completar una solicitud válida. Ejemplo: 500 Internal Server Error, 503 Service Unavailable.

Ejemplo de uso de métodos HTTP en una API REST

  • GET /usuarios/123: Recupera la información del usuario con ID 123.
  • POST /usuarios: Crea un nuevo usuario con los datos proporcionados en el cuerpo de la solicitud.
  • PUT /usuarios/123: Actualiza la información del usuario con ID 123.
  • DELETE /usuarios/123: Elimina al usuario con ID 123.
  • PATCH /usuarios/123: Actualiza parcialmente la información del usuario con ID 123.

Ejemplo de métodos usando fetch en JavaScript

// GET
fetch("https://api.ejemplo.com/usuarios/123")
.then((response) => response.json())
.then((data) => console.log(data));

// POST
fetch("https://api.ejemplo.com/usuarios", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ nombre: "Juan", edad: 30 }),
})
.then((response) => response.json())
.then((data) => console.log(data));

// PUT
fetch("https://api.ejemplo.com/usuarios/123", {
method: "PUT",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ nombre: "Juan Actualizado", edad: 31 }),
})
.then((response) => response.json())
.then((data) => console.log(data));

// DELETE
fetch("https://api.ejemplo.com/usuarios/123", {
method: "DELETE",
})
.then((response) => response.json())
.then((data) => console.log(data));

// PATCH
fetch("https://api.ejemplo.com/usuarios/123", {
method: "PATCH",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ edad: 32 }),
})
.then((response) => response.json())
.then((data) => console.log(data));

Información o recursos adicionales