En el mundo del desarrollo web, la capacidad de conectar diferentes aplicaciones y plataformas es fundamental para crear experiencias completas y funcionales. En este contexto, WordPress ofrece una herramienta poderosa: la REST API. Esta funcionalidad permite que WordPress actúe como un centro de datos que puede ser consultado y manipulado desde cualquier aplicación externa, ya sea una aplicación móvil, un sistema de gestión empresarial o incluso otro sitio web.
En este artículo, exploraremos en profundidad qué es la REST API, cómo funciona, si necesita configuración adicional, cómo desactivarla si es necesario y, lo más importante, cómo puedes aprovecharla con ejemplos prácticos. Si estás listo para llevar tu conocimiento de WordPress al siguiente nivel, esta guía es para ti.
1. Introducción a la REST API de WordPress
La REST API (Representational State Transfer Application Programming Interface) de WordPress es una interfaz poderosa que permite a desarrolladores interactuar con un sitio de WordPress desde aplicaciones externas o servicios mediante solicitudes HTTP. Esto la convierte en una herramienta esencial para conectar WordPress con otros sistemas, aplicaciones móviles, o para construir funcionalidades personalizadas que vayan más allá del clásico panel de administración.
Desde WordPress 4.7, la REST API está habilitada por defecto, ofreciendo acceso a datos como entradas, páginas, usuarios, términos, y configuraciones a través de endpoints JSON.
2. ¿Cómo funciona la REST API?
La REST API se basa en solicitudes HTTP para realizar acciones CRUD (Crear, Leer, Actualizar y Eliminar) en un sitio WordPress. A través de los métodos HTTP (“GET”, “POST”, “PUT”, “DELETE”), puedes interactuar con tu contenido de manera programática. Estas son las piezas clave:
- Endpoints: URLs específicas que corresponden a diferentes tipos de datos. Por ejemplo:
https://tusitio.com/wp-json/wp/v2/postspara entradas.https://tusitio.com/wp-json/wp/v2/pagespara páginas.
- Formato de respuesta: Los datos se intercambian en formato JSON (JavaScript Object Notation), que es ligero y fácil de usar.
- Autenticación: Para acceder a datos públicos (como entradas), no necesitas autenticación. Sin embargo, para operaciones sensibles (crear, actualizar o eliminar datos), necesitarás un método de autenticación como OAuth, JWT o Application Passwords.
3. Características principales de la REST API
- Acceso a datos públicos: Cualquier persona puede acceder a datos como entradas o páginas si la API está habilitada.
- Manipulación de datos protegidos: Puedes crear, actualizar o eliminar contenido autenticándote correctamente.
- Extensible: Puedes crear tus propios endpoints personalizados para exponer datos adicionales o crear funcionalidades únicas.
- Multiplataforma: Permite conectar WordPress con aplicaciones móviles, SPA (Single Page Applications) o sistemas externos como CRMs.
4. ¿Es necesario configurarla?
No es necesario configurarla manualmente, ya que la REST API viene habilitada por defecto. Sin embargo, hay situaciones donde puedes necesitar configurarla o modificar su comportamiento:
- Agregar endpoints personalizados:
- Si deseas exponer datos adicionales o crear una funcionalidad específica, puedes registrar tus propios endpoints con el siguiente ejemplo:
add_action('rest_api_init', function () {
register_rest_route('mi-plugin/v1', '/mis-datos', [
'methods' => 'GET',
'callback' => 'mi_callback_personalizado',
]);
});
function mi_callback_personalizado() {
return ['mensaje' => 'Hola, esta es mi API personalizada'];
}Lenguaje del código: PHP (php)
- Proteger endpoints sensibles: Puedes usar autenticación o permisos para restringir el acceso a ciertos datos.
- Desactivar la REST API: En algunos casos (sitios simples o sin necesidad de integraciones externas), puedes desactivarla para mejorar la seguridad.
5. ¿Cómo desactivar la REST API?
Si no necesitas la REST API en tu sitio, puedes desactivarla utilizando código o plugins.
5.1. Con código:
Añade lo siguiente a tu archivo functions.php:
add_filter('rest_authentication_errors', function ($result) {
if (!is_user_logged_in()) {
return new WP_Error('rest_disabled', 'La REST API está desactivada para usuarios no autenticados.', ['status' => 403]);
}
return $result;
});Lenguaje del código: PHP (php)
Este código restringe el acceso a la REST API solo para usuarios autenticados.
5.2. Usando plugins:
Plugins como Disable REST API simplifican este proceso si prefieres no tocar código.
6. Ejemplos prácticos
6.1. Obtener todas las entradas del sitio
Puedes hacer una solicitud HTTP GET a:
https://tusitio.com/wp-json/wp/v2/postsLenguaje del código: JavaScript (javascript)
Respuesta:
[
{
"id": 1,
"title": {"rendered": "Hola mundo"},
"content": {"rendered": "<p>Contenido de la entrada.</p>"}
},
{
"id": 2,
"title": {"rendered": "Otra entrada"},
"content": {"rendered": "<p>Otro contenido.</p>"}
}
]Lenguaje del código: JSON / JSON con comentarios (json)
6.2. Crear una entrada desde la API
Para crear una entrada, realiza una solicitud HTTP POST con los datos requeridos y un token de autenticación:
POST https://tusitio.com/wp-json/wp/v2/postsLenguaje del código: JavaScript (javascript)
Cuerpo de la solicitud:
{
"title": "Nueva entrada",
"content": "Este es el contenido de la nueva entrada.",
"status": "publish"
}Lenguaje del código: JSON / JSON con comentarios (json)
Respuesta:
{
"id": 3,
"title": {"rendered": "Nueva entrada"},
"content": {"rendered": "<p>Este es el contenido de la nueva entrada.</p>"},
"status": "publish"
}Lenguaje del código: JSON / JSON con comentarios (json)
6.3. Crear un endpoint personalizado para datos de usuarios
add_action('rest_api_init', function () {
register_rest_route('mi-sitio/v1', '/usuarios-activos', [
'methods' => 'GET',
'callback' => function () {
$usuarios = get_users(['role' => 'subscriber']);
return $usuarios;
},
]);
});Lenguaje del código: PHP (php)
Ahora puedes acceder a los usuarios activos mediante:
GET https://tusitio.com/wp-json/mi-sitio/v1/usuarios-activosLenguaje del código: JavaScript (javascript)
7. Autenticación en la REST API
Para operaciones que no sean públicas, necesitas autenticación. Algunos métodos comunes son:
- OAuth: Ideal para integraciones externas avanzadas.
- JWT (JSON Web Tokens): Rápido y seguro.
- Application Passwords: Fácil de usar para propósitos específicos.
8. Mejores prácticas
- Proteger datos sensibles: No expongas datos confidenciales sin autenticación adecuada.
- Limitar el acceso: Usa permisos para controlar qué roles tienen acceso a ciertos datos.
- Optimizar respuestas: Devuelve solo los datos necesarios para mejorar el rendimiento.
- Mantén la seguridad: Usa HTTPS en todas las solicitudes.
9. Conclusión
La REST API de WordPress es una herramienta esencial para conectar tu sitio con el mundo exterior y crear funcionalidades avanzadas. Ya sea que desees integrar una aplicación móvil, construir un sistema personalizado o simplemente interactuar con los datos de tu sitio de manera eficiente, la REST API es el puente ideal.
Con la combinación adecuada de configuraciones, autenticación y creatividad, puedes aprovechar todo su potencial y llevar tu sitio WordPress al siguiente nivel.
Nos vemos en el siguiete tutorial. Un saludo.




Agregar Comentario