Objetivo:
Hoy aprenderemos a crear una API REST sencilla utilizando PHP puro, aplicando buenas prácticas de validación de entradas y medidas básicas de seguridad.
📚 Formación Teórica
1. Conceptos Básicos: ¿Qué es una API REST?
Una API REST permite que diferentes aplicaciones se comuniquen a través de peticiones HTTP estándar (GET
, POST
, PUT
, DELETE
).
Una API bien diseñada debe:
- Validar todas las entradas.
- Devolver respuestas claras.
- Implementar controles de acceso básicos.
- Minimizar la exposiciĂłn de informaciĂłn sensible.
🎥 VĂdeos de hoy
Instrucciones para los vĂdeos:
Presta especial atenciĂłn a:
- CĂłmo manejar las diferentes rutas (
GET
,POST
). - CĂłmo validar los datos entrantes.
- CĂłmo devolver respuestas en formato JSON correctamente.
đź§ Apuntes TĂ©cnicos del DĂa
📌 Estructura básica de una API REST en PHP
- Se recomienda usar un archivo PHP sencillo como «servidor» para recibir las peticiones.
- Dependiendo del método (
GET
,POST
), la API debe comportarse de forma distinta.
Esqueleto básico:
header('Content-Type: application/json');
$requestMethod = $_SERVER["REQUEST_METHOD"];
switch($requestMethod) {
case 'GET':
// CĂłdigo para manejar GET
echo json_encode(["message" => "GET recibido"]);
break;
case 'POST':
// CĂłdigo para manejar POST
$data = json_decode(file_get_contents('php://input'), true);
echo json_encode(["received" => $data]);
break;
default:
http_response_code(405);
echo json_encode(["error" => "Método no permitido"]);
}
📌 Validación de Entradas
- Nunca confĂes en datos recibidos por
$_POST
,$_GET
ophp://input
. - Valida el tipo, longitud y formato de cada dato.
- Usa
filter_var()
para validar emails, nĂşmeros, etc.
Ejemplo de validaciĂłn sencilla:
if (isset($data['email']) && filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
// Email válido
} else {
echo json_encode(["error" => "Email no válido"]);
exit;
}
📌 Seguridad Básica
- Control de Acceso: añade un pequeño sistema de autenticación (por ejemplo, validando un
token
enviado en la cabecera). - Cabeceras HTTP: siempre enviar el header
'Content-Type: application/json'
. - Control de Métodos: responde adecuadamente a métodos no permitidos (
405 Method Not Allowed
).
🛠️ Tareas prácticas del DĂa 17
Tarea 1 — Crear una API básica:
- Crea un archivo
api.php
que acepte:GET
: devuelve un mensaje tipo «Bienvenido a mi API».POST
: recibe un JSON connombre
yemail
, valida los datos y devuelve un JSON de confirmaciĂłn.
Tarea 2 — Añadir validaciones:
- Si el
email
no es válido, devuelve un error 400. - Si falta algún campo, devuelve un error 422.
Tarea 3 — Seguridad básica:
- Añade verificación de un token sencillo enviado en los headers HTTP (
Authorization: Bearer [token]
). - Si el token es incorrecto, devuelve
401 Unauthorized
.
Entrega:
- Crea un documento PDF donde adjuntes:
- CĂłdigo PHP completo de tu API.
- Ejemplos de peticiones (
GET
yPOST
) y sus respuestas. - Capturas de pantalla del funcionamiento y manejo de errores.
🚀 Resultado esperado al finalizar el dĂa
- Saber crear una API REST funcional y segura usando PHP puro.
- Entender la importancia de validar entradas y proteger accesos.
- Prepararte para integrar APIs más avanzadas en WordPress en el siguiente dĂa.