5 puntos para entender la REST API de WordPress

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://www.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://www.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://www.dariobf.com/wp-json/wp/v2/posts verás que te muestra los 10 artículos más recientes.

De igual manera, https://www.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://www.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://www.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.

¡MANTENME INFORMADO!

¡Gracias por tu interés en estar informado del próximo lanzamiento de mis cursos! 😎

¡No hago spam! Lee la política de privacidad para tener más información.

6 comentarios en “5 puntos para entender la REST API de WordPress

  1. Hola, gracias por tu post. Quería saber si sabes como consultar (los end points)por palabras de búsqueda y categorías desde una app de React. Ya he conseguido hacer las consultas por post, page, pero no por búsquedas.

  2. Hola Dario,
    Ando dándole vueltas a como conectar un crm hecho en delphi con woocommerce para poder tener la tienda online (wordpress) actualizada (productos,stock,imagenes…) desde el crm. He visto algunos enlaces que me han traido hasta tu web, pero desgraciadamente creo que el contenido que busco es demasiado concreto y no veo nada por la web.
    Por cierto, muy, muy buen contenido en la web.
    Un saludo.

Deja una respuesta

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

*

*

DARÍO BALBONTÍN FERNÁNDEZ es el Responsable del tratamiento de los datos personales del usuario y le informa que estos datos serán tratados de conformidad con lo dispuesto en el Reglamento (UE) 2016/679 de 27 de abril (GDPR) y la Ley Orgánica 3/2018 de 5 de diciembre (LOPDGDD), por lo que se le facilita la siguiente información del tratamiento: Fin del tratamiento: mantener una relación comercial y el envío de comunicaciones sobre nuestros productos y servicios. Criterios de conservación de los datos: se conservarán mientras exista un interés mutuo para mantener el fin del tratamiento y cuando ya no sea necesario para tal fin, se suprimirán con medidas de seguridad adecuadas para garantizar la seudonimización de los datos o la destrucción total de los mismos.Comunicación de los datos: No se comunicarán los datos a terceros, salvo obligación legal. Derechos que asisten al usuario: Derecho a retirar el consentimiento en cualquier momento. Derecho de acceso, rectificación, portabilidad y supresión de sus datos y a la limitación u oposición al su tratamiento. Derecho a presentar una reclamación ante la Autoridad de control (agpd.es) si considera que el tratamiento no se ajusta a la normativa vigente. Datos de contacto para ejercer sus derechos: contacto@dariobf.com.