Objetivo:
Hoy nos adentraremos en el REST API nativo de WordPress, entenderemos cómo funciona y aprenderemos a crear nuestros propios endpoints personalizados, siempre aplicando buenas prácticas de seguridad.
📚 Formación Teórica
1. ¿Qué es el REST API de WordPress?
WordPress integra de forma nativa un sistema de REST API que permite interactuar con el sitio web de manera externa utilizando peticiones HTTP.
A través de este API, puedes leer, crear, actualizar y borrar datos (entradas, usuarios, taxonomías, etc.) desde aplicaciones externas o plugins.
🎥 Vídeos de hoy
Instrucciones para los vídeos:
Debes entender:
- Cómo funcionan los endpoints nativos (
/wp-json/wp/v2/...
). - Cómo crear tus propios endpoints personalizados.
- Qué medidas de seguridad implementar para proteger tus datos.
🧠 Apuntes Técnicos del Día
📌 ¿Cómo funciona el REST API de WordPress?
- Toda la comunicación ocurre a través de rutas accesibles vía URL (
/wp-json/
). - WordPress ya expone rutas para gestionar posts, usuarios, medios, etc.
- Puedes consumirlas o extenderlas.
Ejemplo de endpoint nativo:
https://tusitio.com/wp-json/wp/v2/posts
📌 Cómo crear tu propio endpoint en WordPress
Se utiliza el hook rest_api_init
y la función register_rest_route()
.
Ejemplo básico de endpoint personalizado:
add_action('rest_api_init', function () {
register_rest_route('seocto/v1', '/mensaje/', array(
'methods' => 'GET',
'callback' => function() {
return new WP_REST_Response('¡Hola desde tu API personalizada!', 200);
},
));
});
Explicación:
seocto/v1
: tu namespace personalizado./mensaje/
: el nombre de tu endpoint.GET
: método HTTP permitido.callback
: función que se ejecuta al acceder.
📌 Seguridad en endpoints personalizados
- Permitir sólo métodos necesarios (
GET
,POST
, etc.). - Autenticar usuarios para acceder a información sensible.
- Validar parámetros recibidos en la URL o en el body de la petición.
- Utilizar
permission_callback
enregister_rest_route()
para controlar el acceso.
Ejemplo con control de permisos:
add_action('rest_api_init', function () {
register_rest_route('seocto/v1', '/privado/', array(
'methods' => 'GET',
'permission_callback' => function () {
return current_user_can('edit_posts');
},
'callback' => function() {
return new WP_REST_Response('Área privada', 200);
},
));
});
🛠️ Tareas prácticas del Día 18
Tarea 1 — Explorar los endpoints existentes:
- Accede a
https://tusitio.com/wp-json/
y navega por las rutas disponibles. - Documenta los endpoints que devuelve WordPress por defecto.
Tarea 2 — Crear un endpoint personalizado público:
- Crea un endpoint
/seocto/v1/hola/
que devuelva un mensaje personalizado como respuesta.
Tarea 3 — Crear un endpoint protegido:
- Crea un endpoint
/seocto/v1/privado/
que solo puedan consultar usuarios logueados con capacidadedit_posts
.
Entrega:
- Documenta en un PDF:
- Código de los endpoints creados.
- Capturas de pantalla de las peticiones a tus endpoints (público y protegido).
- Explicación breve de cómo protegiste el endpoint privado.
🚀 Resultado esperado al finalizar el día
- Comprender el funcionamiento de la REST API de WordPress.
- Saber crear y proteger tus propios endpoints personalizados.
- Estar preparado para integrar APIs avanzadas en tus proyectos WordPress.
Con esto completamos la sección de APIs REST y Seguridad (Días 16, 17 y 18) de tu certificación. 🚀