Introducción al REST API de WordPress

Contents

Introducción al REST API de WordPress

El REST API de WordPress es una interfaz que permite interactuar de forma programática con un sitio de WordPress. Gracias a él, desarrolladores pueden leer, crear, actualizar y eliminar contenido (entradas, páginas, usuarios, taxonomías, medios) utilizando peticiones HTTP. Esto abre un abanico de posibilidades para construir aplicaciones y servicios desacoplados (headless), integrar con sistemas externos o crear paneles de administración personalizados.

1. Arquitectura y conceptos básicos

  • Recursos: Representan objetos como posts, páginas, usuarios, medios, etc. Cada uno posee su propio endpoint.
  • Métodos HTTP: GET (obtener datos), POST (crear), PUT/PATCH (actualizar), DELETE (eliminar).
  • Endpoints: URLs que exponen los recursos, siguen la forma /wp-json/wp/v2/{recurso}.
  • Formatos: Generalmente JSON. Todos los cuerpos de petición y respuesta usan JSON.
  • Versionado: Se incluye en la ruta vía /wp-json/wp/v2/. Permite mantener compatibilidad.

2. Endpoints principales

Recurso Endpoint Métodos
Entradas (Posts) /wp-json/wp/v2/posts GET, POST, PUT, PATCH, DELETE
Páginas /wp-json/wp/v2/pages GET, POST, PUT, PATCH, DELETE
Usuarios /wp-json/wp/v2/users GET, POST, PUT, PATCH, DELETE
Medios /wp-json/wp/v2/media GET, POST, PUT, PATCH, DELETE

3. Autenticación y seguridad

Por defecto, las operaciones GET son públicas (lectura). Para crear, editar o eliminar, es imprescindible autenticarse. WordPress ofrece varias estrategias:

  • Cookie Authentication: Ideal para peticiones desde el front-end del mismo sitio. Requiere usar wp_nonce.
  • Basic Authentication: No se recomienda en producción (requiere transmitir credenciales en cada petición).
  • OAuth 1.0a: Protocolo robusto, más complejo de configurar. Útil para integraciones con terceros.
  • Application Passwords: Introducido en WordPress 5.6. Genera credenciales específicas para API, con permisos restringidos.
  • JWT (JSON Web Tokens): Mediante plugins de terceros para emitir y validar tokens, muy usado en headless.

Para profundizar: Documentación oficial de autenticación.

4. Parámetros y filtros comunes

Al consumir el REST API, podemos refinar las respuestas usando parámetros en la query string:

  • page: Página de resultados (paginación).
  • per_page: Ítems por página (máximo 100).
  • search: Búsqueda por texto.
  • orderby: Ordenar resultados (date, title, id, etc.).
  • order: ASC o DESC.
  • author: Filtrar por ID de autor.
  • status: public, draft, etc.

Ejemplo de petición:

GET https://tusitio.com/wp-json/wp/v2/postsper_page=5orderby=titleorder=asc

5. Estructura de respuesta

Cada respuesta JSON incluye:

  • Headers: Información de paginación en X-WP-Total y X-WP-TotalPages.
  • Body: Lista de objetos con campos predeterminados (id, date, title.rendered, content.rendered, links…).

6. Personalización y extensiones

WordPress permite:

  • Registrar rutas personalizadas con register_rest_route().
  • Agregar campos extra a recursos usando register_rest_field() o register_rest_column().
  • Aplicar permisos personalizados mediante el parámetro permission_callback.
  • Modificar respuestas con filtros como rest_prepare_{tipo_recurso}.

Ejemplo básico de ruta personalizada:

add_action(rest_api_init, function() {
  register_rest_route(mi-plugin/v1, /saludo, array(
    methods             => GET,
    callback            => mi_funcion_saludo,
    permission_callback => __return_true
  ))
})

function mi_funcion_saludo() {
  return array(mensaje => ¡Hola desde REST API!)
}

7. Manejo de errores

Las respuestas de error usan códigos HTTP (400, 401, 403, 404, 500) y un JSON estándar:

{
  code: rest_forbidden,
  message: No tienes permisos.,
  data: { status: 401 }
}
  

8. Rendimiento y caché

Para optimizar:

  • Caché de respuestas con plugins como WP REST Cache o soluciones a nivel de proxy (Varnish, Cloudflare).
  • Lazy loading y pagination adecuada para evitar respuestas muy pesadas.
  • Optimización de consultas si se añaden campos personalizados.

9. Casos de uso comunes

  • Aplicaciones headless con React, Vue o Angular.
  • Integración con aplicaciones móviles (iOS, Android).
  • Sincronización de contenido con otros CMS o plataformas.
  • Desarrollo de gestores de contenido personalizados.

10. Recursos y lecturas recomendadas

Conclusión

El REST API de WordPress es una herramienta poderosa y flexible para exponer y manipular datos de un sitio. Con comprensión de su arquitectura, métodos de autenticación y buenas prácticas de desarrollo, es posible crear experiencias ricas y aplicaciones integradas que van más allá del típico tema PHP. Te invitamos a experimentar, extender y construir soluciones innovadoras aprovechando todo el potencial de esta interfaz.



Acepto donaciones de BAT's mediante el navegador Brave 🙂



Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *