De un tiempo a esta parte encuentro realmente útil la REST API de WordPress, te puedes conectar a ella desde diversos puntos tales como una app web, móvil o tus propios plugins para consultar o actualizar contenidos.

¿Qué es una REST API?

Si me pongo en modo Wikipedia, REST significa REpresentational State Transfer o, si lo prefieres en español, transferencia de estado representacional.

Además, podría contarte que fue ideado por uno de los autores del protocolo HTTP, pero para eso mejor que leas la Wikipedia.

Lo que me gustaría transmitir en este artículo es el concepto en sí y cómo se comporta o funciona en WordPress.

Básicamente en una REST API existen rutas o puntos (endpoints) que podemos consultar para gestionar información de la aplicación que, en este caso, es WordPress.

Dicho de otra forma, podemos consultar, insertar o actualizar la información de artículos, usuarios y demás información administrada por WordPress a través de estos endpoints de la REST API.

Cómo funciona la REST API de WordPress, los endpoints

Una REST API responde a nuestra petición, que realizamos a través de una URL.

Por ejemplo, podemos visitar la REST API de esta web a través de https://dariobf.com/wp-json, donde vemos que tenemos información sobre la misma, pero además podemos ver los diferentes endpoints de esta.

Un endpoint es, básicamente, una ruta que responde a una acción. Después te explicaré esto con más detalle, pero quédate con eso por ahora.

Si volvemos a la REST API del ejemplo anterior, podemos navegar hasta "routes" para ver los diferentes endpoints de mi web.

Fíjate que muchos responden a los diferentes plugins que tengo instalados (akismet, ssp, yoast, wp-super-cache...)

Vamos a centrarnos en los nativos de WordPress, que están creados bajo https://dariobf.com/wp-json/wp/v2. Fíjate que el endpoint inicial wp-json lo mantenemos; es la raíz de nuestra REST API de WordPress.

Una vez más, si abrimos el objeto "routes", vemos todos los endpoints que nos proporciona WordPress y, también, algunos plugins.

Aquí, además de las rutas o endpoints, podemos ver los métodos para cada uno de ellos.

En este ejemplo puedes ver que el endpoint posts tiene dos métodos: GET y POST.

Tipos de endpoints

Un endpoint puede tener diferentes tipologías, que te voy a explicar de la manera que yo he entendido (creo que resulta más fácil).

Pueden ser de acceso público o restringido, dependiendo de la información que se vaya a tratar. Los segundos requerirán autenticación por parte del usuario o aplicación que esté consultando la REST API.

En el ejemplo concreto de WordPress, podemos consultar los artículos del blog de manera pública pero, por ejemplo, no podremos registrar usuarios a través de la REST API sin identificarnos como usuario con permisos suficientes.

Además, un mismo endpoint puede responder de diferente manera según el método que estemos utilizando.

Tenemos, a grandes rasgos, cuatro métodos destinados a las siguientes tareas:

Puede que, a estas alturas, te preguntes ¿por qué pongo que un endpoint suele requerir autenticación y no lo pongo como algo estrictamente necesario u obligatorio?

Bien, la cosa está en que puedes crear los endpoints que necesites, totalmente personalizados que hagan la tarea que tu quieras. Esto es, que puedes hacer un endpoint que modifique cosas de la base de datos sin ningún tipo de restricción o autenticación. No tiene sentido, lo se, pero podría ser...

Además, estos endpoints pueden requerir algún parámetro.

Por ejemplo, si utilizamos un endpoint para artículos con el método POST, es porque vamos a insertar, por lo que deberemos especificarle como parámetros los diferentes valores: título, extracto, contenido, slug...

Lógicamente, esto depende del endpoint y método que utilicemos, pero es necesario que sepas que algunos endpoint requieren parámetros específicos y a veces son obligatorios.

Un ejemplo claro es el endpoint para inserción de usuarios, donde los parámetros username, email y password son obligatorios.

Ejemplos de uso de la REST API en WordPress

Una forma buena de ver cómo funcionan los endpoints, es con ejemplos.

Si entras en el endpoint https://dariobf.com/wp-json/wp/v2/posts verás que te muestra los 10 artículos más recientes.

De igual manera, https://dariobf.com/wp-json/wp/v2/posts/5150, muestra la información correspondiente al artículo con ID 5150 (el anterior a este), del que podemos extraer, por ejemplo, el título, contenido, slug, fecha de publicación...

Además, hay endpoints que permiten introducir parámetros de consulta.

Si volvemos al endpoint de artículos (https://dariobf.com/wp-json/wp/v2/posts), verás que solamente muestra 10 artículos. Esto lo podemos cambiar con el parámetro per_page, de la siguiente forma: https://dariobf.com/wp-json/wp/v2/posts?per_page=100

Tiene otros parámetros de consulta, como por ejemplo para filtrar por categorías, etiquetas, autor... Vaya, casi como si de un WP_Query se tratase.

Usos de la REST API de WordPress

La REST API supuso una actualización fuerte en WordPress, ya que pasamos de crear webs monolóticas a generar (casi) cualquier tipo de proyecto online.

Podemos nutrir nuestras apps móviles desde la REST API o hacer todo el frontend utilizando librerías modernas como REACT, lo que conocemos como Headless WordPress.

Estas prácticas ganan en seguridad, ya que WordPress permanece "oculto" al usuario final, pero sigue dándonos todas sus ventajas como CMS: Gestión de usuarios, gestión de contenidos, fácil personalización...

En mi caso, me ha servido para hacer análisis masivo de contenidos; buscar patrones o modificar contenidos de forma masiva para, por ejemplo, eliminar o adaptar los contenidos generados por algún plugin (shorcodes ejem ejem).

Conclusiones

Sin duda, una herramienta muy potente que nos ayuda a ampliar el uso de WordPress y llevarlo a otro nivel. Incluso podemos valernos de ella para poder realizar tareas de mantenimiento sobre nuestros contenidos con herramientas más ágiles y modernas.

Valora la entrada
(Votos: 6 Promedio: 5)