APIs con PHP

Introducción a APIs con PHP

En esta sección aprenderás qué son las APIs, cómo funcionan y por qué son importantes en el desarrollo web moderno.

¿Qué es una API?

Application Programming Interface

Una API es un conjunto de reglas y protocolos que permiten que diferentes aplicaciones se comuniquen entre sí.

El término API significa Application Programming Interface (Interfaz de Programación de Aplicaciones). Actúa como un intermediario que permite que el software solicite características y datos específicos de otro software.

Cliente
API
Servidor
Comprende las APIs con una analogía sencilla
Analogía del restaurante

  • (el cliente) quieres un plato de comida, pero no puedes entrar a la cocina.
  • El camarero (la API) toma tu pedido en un formato específico.
  • La cocina (el servidor) recibe el pedido y prepara la comida.
  • El camarero trae de vuelta la comida en un plato (los datos en un formato específico).

En la práctica

Las APIs permiten:

  • Integrar servicios de terceros (como pagos, mapas, clima)
  • Separar el frontend del backend (arquitectura desacoplada)
  • Facilitar la comunicación entre diferentes sistemas
  • Reutilizar funcionalidades sin compartir todo el código

Tipos de APIs

Existen varios tipos de APIs según su arquitectura y uso:

REST API

Utiliza métodos HTTP (GET, POST, PUT, DELETE) para operaciones CRUD. Es la más común en la web.

Ejemplos: Twitter, OpenWeatherMap

SOAP API

Protocolo más estructurado y formal. Usa XML exclusivamente. Común en empresas y servicios financieros.

Ejemplos: Servicios bancarios, PayPal (antiguo)

GraphQL

Permite a los clientes solicitar exactamente los datos que necesitan, evitando sobrefetching o underfetching.

Ejemplos: GitHub, Facebook

WebSockets

Permite comunicación bidireccional en tiempo real entre cliente y servidor.

Ejemplos: Chats, actualizaciones en vivo

¿Por qué usar APIs?

Ventajas
  • Reutilización de código y recursos
  • Desarrollo más rápido al aprovechar servicios existentes
  • Separación clara entre frontend y backend
  • Escalabilidad mejorada
  • Facilita la integración con otras plataformas
Desafíos
  • Gestión de seguridad y autenticación
  • Manejo de límites de uso (rate limiting)
  • Dependencia de servicios externos
  • Versionado de APIs
  • Tiempo de respuesta y latencia

APIs y PHP

PHP y las APIs

PHP es un lenguaje excelente tanto para consumir como para crear APIs por varias razones:

Consumir APIs
  • Funciones nativas para peticiones HTTP
  • Manejo sencillo de JSON
  • Bibliotecas especializadas disponibles
Crear APIs
  • Fácil integración con bases de datos
  • Generación de respuestas en JSON
  • Frameworks que facilitan el desarrollo
consumir_api_productos.php

<?php
// Ejemplo: Consumir una API gratuita con PHP (Fake Store API)
// Esta API no requiere apiKey
$url = "https://fakestoreapi.com/products?limit=4";

// Realizar la petición HTTP
$respuesta = file_get_contents($url);

// Convertir JSON a array asociativo de PHP
$productos = json_decode($respuesta, true);

// Acceder a los datos y mostrar productos
echo "<div class='productos-container'>";
echo "  <h3>Catálogo de Productos</h3>";
echo "  <div class='row'>";

foreach ($productos as $producto) {
    echo "<div class='col-md-3 mb-4'>";
    echo "  <div class='card h-100'>";
    echo "    <img src='{$producto['image']}' class='card-img-top p-3' alt='{$producto['title']}' style='height: 180px; object-fit: contain;'>";
    echo "    <div class='card-body'>";
    echo "      <h5 class='card-title text-truncate' title='{$producto['title']}'>{$producto['title']}</h5>";
    echo "      <p class='card-text text-muted'>{$producto['category']}</p>";
    echo "      <p class='card-text'><strong>€{$producto['price']}</strong></p>";
    echo "      <button class='btn btn-sm btn-primary'>Añadir al carrito</button>";
    echo "    </div>";
    echo "  </div>";
    echo "</div>";
}

echo "  </div>";
echo "</div>";
?>
Resultado de la API

Catálogo de Productos

Mochila
Mochila Fjallraven - Foldsack No. 1

men's clothing

€109.95

Camiseta
Camiseta Slim Fit para hombre

men's clothing

€22.30

Chaqueta
Chaqueta de algodón para hombre

men's clothing

€55.99

Camiseta casual
Camiseta casual slim fit

men's clothing

€15.99

¿Cómo funciona?

El código anterior realiza una petición a la Fake Store API, que proporciona datos de productos sin requerir autenticación. La respuesta JSON se convierte a un array asociativo de PHP y luego se recorre con un bucle foreach para mostrar cada producto en un formato de catálogo visualmente atractivo. Este ejemplo demuestra cómo PHP puede consumir fácilmente una API RESTful y procesar datos JSON.

Herramientas para trabajar con APIs en PHP

PHP ofrece varias herramientas y opciones para interactuar con APIs:

Funciones nativas

PHP incluye funciones integradas como file_get_contents() y la extensión cURL que permiten realizar peticiones HTTP a cualquier API.

Bibliotecas de terceros

Bibliotecas como Guzzle HTTP, HTTPful, y otras simplifican el proceso de realizar peticiones HTTP complejas y manejar respuestas.

Frameworks

Laravel, Symfony y otros frameworks PHP ofrecen clientes HTTP y herramientas integradas para trabajar con APIs de forma eficiente.

En resumen

Las APIs son fundamentales en el desarrollo web moderno. Permiten integrar servicios, compartir datos entre aplicaciones y construir arquitecturas más flexibles y escalables. En las siguientes lecciones, aprenderemos específicamente sobre APIs REST, cómo consumirlas y cómo crear nuestras propias APIs con PHP.

Flujo de trabajo con APIs en PHP

1. Petición

Envía una solicitud HTTP desde PHP a la API usando métodos GET, POST, PUT o DELETE

file_get_contents($url) o
curl_exec($ch)
2. Respuesta

La API devuelve datos (normalmente en formato JSON) y un código de estado HTTP

$respuesta = ...
$codigo = http_response_code()
3. Procesamiento

Convierte la respuesta JSON a estructuras de datos PHP para su uso

$datos = json_decode(
$respuesta, true)
4. Utilización

Usa los datos recibidos en tu aplicación PHP

$temperatura =
$datos['main']['temp']