Descubre en este artículo las nociones básicas sobre la API REST de WordPress y cómo puedes sacarle partido.
En tutoriales anteriores has visto cómo usar la API REST, por ejemplo en el tutorial en el que te explicaba cómo mostrar las entradas de otra web mediante un shortcode usando la API REST de WordPress.
Pero mientras estaba preparando nuevos tutoriales utilizándola he pensado que merece la pena sentar las bases antes.
Este artículo no pretende hacer un estudio exhaustivo, sino un repaso de los conceptos básicos y, sobre todo, de los elementos clave que vas a necesitar para utilizar la API REST de WordPress.
Además, también te servirá de apoyo si te surge alguna duda cuando estés siguiendo alguno de los tutoriales de Código Genesis.
Vamos a ello.
¿Qué es una API REST?
Empezamos por la definición de cada una de las partes:
- Por un lado, API significa Application Programming Interface, que se traduce como interfaz de programación de aplicaciones. Permite que dos aplicaciones se comuniquen entre ellas.
- Y por otro, REST significa REpresentational State Transfer, en castellano transferencia de estado representacional.
Y juntando ambos conceptos podríamos decir que una API REST es una interfaz de programación que usa el protocolo HTTP, el cual ofrece rutas o puntos (endpoints) donde consultar o modificar información.
Y en el caso de WordPress se cumple dicha definición.
Es decir, la API REST de WordPress es una interfaz que permite administrar el CMS desde fuera de la propia instalación de WordPress. Esto se puede hacer desde una aplicación de escritorio, una aplicación móvil u otro servicio web externo, incluso otro WordPress.
Seguro que has oído el concepto de headless WordPress, que no es otra cosa que usar WordPress como un sistema desacoplado. Es decir, que WordPress se encargue del backend y otros sistema, por ejemplo una app, se encargue de la parte frontal.
Esto es posible gracias a la API REST.
¿Cómo usar la API REST de WordPress?
Para empezar a usar la API te conviene conocer los conceptos básicos:
- Rutas y endpoints
- Métodos HTTP
- Autenticación
- Funciones de WordPress
Vamos a ver cada uno de ellos con un poco más de detenimiento.
Rutas y puntos (endpoints)
Las rutas y endpoints son las URLs que contienen la información.
Por ejemplo, si vas a codigogenesis.com/wp-json/ verás todas la rutas disponibles y dentro de las mismas hay endpoints.
Si profundizamos un poco más en la ruta podemos llegar a /wp-json/wp/v2/posts/
, que sería el endpoint para acceder a las entradas.
Si te fijas, las rutas de la API REST siguen la siguiente estructura:
- URL de la web
- /wp-json: Prefijo de la URL de la API REST.
- /wp: Nombre de la URL.
- /v2: Versión de la API REST.
Para que te hagas una idea de cómo puede variar cuando usas otra API, para acceder a los productos usando la API REST de WooCommerce usarías la ruta: /wp-json/wc/v3/products/
Pero volviendo a WordPress, estos son algunos de los endpoints a los que puedes acceder:
/wp-json/wp/v2/posts/
> para acceder a las entradas/wp-json/wp/v2/pages/
> para acceder a las páginas/wp-json/wp/v2/plugins/
> para acceder a los plugins/wp-json/wp/v2/theme/
> para acceder a los temas/wp-json/wp/v2/media/
> para acceder a los medios/wp-json/wp/v2/users/
> para acceder a los usuarios/wp-json/wp/v2/tags/
> para acceder a las etiquetas/wp-json/wp/v2/categories/
> para acceder a las categorías/wp-json/wp/v2/taxonomies/
> para acceder a las taxonomías/wp-json/wp/v2/comments/
> para acceder a los comentarios/wp-json/wp/v2/settings/
> para acceder a los ajustes del sitio/wp-json/wp/v2/blocks/
> para acceder a los bloques/wp-json/wp/v2/block-types/
> para acceder a los tipos de bloques
No solo hay alguna más, sino que también puedes crear rutas y puntos personalizados gracias a la función register_rest_route
.
Cabe destacar que algunos endpoints son públicos y no requieren autenticación, mientras que otros (los restringidos) sí.
Métodos HTTP
Los métodos HTTP son los que determinarán el tipo de operación que vas a realizar. Estos son los básicos:
GET
> para obtener datosPOST
> para crear nuevos elementos (posts, taxonomías..).PUT
> para actualizar elementosDELETE
> para borrar elementos
Para poder usar algunos de estos métodos necesitas autenticarte, así que vamos a ver cómo puedes gestionar esa parte.
Autenticación
Efectivamente, para acceder a determinadas rutas y usar determinados métodos necesitas autenticarte.
Esto, como podrás imaginar, se debe a motivos obvios de seguridad. No queremos que cualquiera pueda consultar datos sensibles, o peor aún, crear o borrar elementos de la web.
Existen varios tipos de autenticación pero lo más sencillo es obtener las credenciales (usuario y contraseña) usando la herramienta Application Passwords incluida en en core de WordPress.
Para saber exactamente cómo hacerlo echa un ojo a este tutorial.
Funciones de WordPress
Si vas a utilizar la API REST para conectar dos WordPress (o vas a llamar a otras APIs), puedes usar algunas funciones dedicadas del CMS:
wp_remote_request
> Hace una petición HTTP y devuelve la respuesta. Puedes pasar el método de quieras (cualquiera del apartado superior).wp_remote_
get > Hace una petición HTTP usando el método GET y devuelve la respuesta.wp_remote_post
> Hace una petición HTTP usando el método POST y devuelve la respuesta.wp_remote_head
> Hace una petición HTTP usando el método HEAD y devuelve la respuesta.wp_remote_retrieve_body
> Recupera el cuerpo de la respuesta.wp_remote_retrieve_header
> Recupera la cabecera de la respuesta.wp_json_file_decode
> Lee y decodifica el fichero JSON.
Cabe destacar que el formato utilizado, tanto para las peticiones como para las respuestas es JSON (JavaScript Object Notation).
Y por ahora ya tienes suficiente teoría.
Soy consciente de que son muchos conceptos, pero la idea es sentar las bases (o usar este artículo como referencia) para que puedas sacarle el máximo partido a la API REST.
La ventaja es que, una vez sepas cómo se utiliza, podrás acceder y modificar todos los endpoints de la API REST. Esto te abre un abanico casi infinito de posibilidades.
En los próximos tutoriales te explicaré cómo puedes sacarle partido con casos prácticos.
Conclusiones
Ahora ya sabes qué es la API REST de WordPress y las bases sobre cómo utilizarla.
Además, has visto las posibilidades que abre. Con un poco de práctica e imaginación puedes usar WordPress como un sistema desacoplado o headless, en el que WordPress se encargue del backend y una app se encargue del frontend.
¿Alguna duda? Te leo en los comentarios.
Y si quieres darme una sugerencia para próximos tutoriales, déjamela en el formulario de contacto. Ventajas de ser suscriptor. 😉