🔒 Día 16 — Consumo de APIs desde PHP y JavaScript (fetch y curl)


Objetivo:
Hoy aprenderemos a consumir APIs REST utilizando tanto PHP (con cURL) como JavaScript (con fetch).
Este conocimiento es esencial para trabajar con servicios externos, integrar aplicaciones modernas y asegurar una buena práctica de desarrollo seguro.


📚 Formación Teórica

1. Conceptos Básicos: ¿Qué es consumir una API REST?

Consumir una API REST significa realizar peticiones HTTP (como GET, POST, PUT, DELETE) para enviar o recibir datos de un servidor externo.
Desde PHP lo hacemos tradicionalmente con cURL, y desde JavaScript moderno usamos fetch.

Importante: Siempre debes validar las respuestas y manejar los errores para proteger tu aplicación.


🎥 Vídeos de hoy

Instrucciones para los vídeos:
Mira los vídeos completos, tomando notas sobre:

  • Cómo construir una petición básica.
  • Cómo capturar y manejar errores.
  • Buenas prácticas de seguridad (tokens, cabeceras, HTTPS).

🧠 Apuntes Técnicos del Día

📌 Consumo de APIs en PHP usando cURL

  • cURL es una librería de PHP que permite enviar peticiones HTTP.
  • Debes configurar una sesión, establecer opciones (CURLOPT_URL, CURLOPT_RETURNTRANSFER, etc.), ejecutar la llamada y luego cerrarla.
  • Recuerda:
    • Usa HTTPS siempre que sea posible.
    • Valida las respuestas.
    • Controla errores con curl_errno() y curl_error().

Ejemplo básico en PHP:

$url = 'https://jsonplaceholder.typicode.com/posts';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if(curl_errno($ch)){
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
$data = json_decode($response, true);
print_r($data);

📌 Consumo de APIs en JavaScript usando fetch

  • fetch es una API moderna integrada en los navegadores para realizar solicitudes HTTP.
  • Utiliza promesas para manejar respuestas y errores.
  • Siempre debes gestionar excepciones usando .catch() o try/catch.

Ejemplo básico en JavaScript:

fetch('https://jsonplaceholder.typicode.com/posts')
  .then(response => {
    if (!response.ok) throw new Error('Error en la petición');
    return response.json();
  })
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));

⚡ Buenas prácticas de seguridad

  • Validar siempre las respuestas que recibes. No confíes ciegamente en datos externos.
  • Usar HTTPS en todas las comunicaciones.
  • Gestionar tokens y claves de API correctamente (nunca exponerlas en frontend).
  • Controlar CORS (Cross-Origin Resource Sharing) adecuadamente si haces peticiones entre dominios.

🛠️ Tareas prácticas del Día 16

Tarea 1 — Consumo en JavaScript:

  • Usando fetch, realiza una petición GET al endpoint https://jsonplaceholder.typicode.com/posts.
  • Muestra los resultados en consola.

Tarea 2 — Consumo en PHP:

  • Usando cURL, realiza una petición GET al mismo endpoint.
  • Decodifica la respuesta JSON y muestra los títulos de los posts.

Tarea 3 — Manejo de errores:

  • Implementa control de errores en ambas soluciones.
  • En PHP, comprueba si hubo errores en la conexión.
  • En JS, usa .catch() para capturar errores de red.

Entrega:

  • Crea un documento PDF donde adjuntes:
    • Código PHP y JavaScript utilizado.
    • Capturas de pantalla del funcionamiento correcto.
    • Breve explicación de cómo manejaste los errores.

🚀 Resultado esperado al finalizar el día

  • Saber consumir APIs REST básicas desde PHP y JavaScript.
  • Saber validar respuestas y manejar errores.
  • Conocer las buenas prácticas de seguridad en el consumo de APIs.