¿Qué es REST API?
En resumen, una REST API es una interfaz de programación que usa el protocolo HTTP como base, formando URLs para administrar datos y devolviendo valores en formato JSON.
En la definición anterior hay algunos términos que se detallan a continuación:
REST (Representational State Transfer)
Transferencia de Estado Representacional.
Define la arquitectura usada en una red, usa como base el protocolo HTTP y nos sirve para generar datos y operaciones devolviendo datos en formato JSON o XML. Puesto que usa HTTP como base, todos los objetos se manipulan a través de una URL.
API (Application Programming Interface)
Interfaces de programación de aplicaciones.
Es una especificación formal de cómo un módulo de software se comunica con otro, es decir, es un conjunto de comandos, funciones y protocolos que permiten a los desarrolladores crear programas específicos para ciertos sistemas sin tener que escribir desde cero todo.
Con las APIs podemos, por ejemplo, integrar una pasarela de pago en nuestro sitio web que se comunique con las APIs de un banco para validar el pago y devolver el estado de la transacción a nuestro sitio.
Protocolo HTTP (Hypertext Transfer Protocol)
Protocolo de Transferencia de HiperTexto.
Es un sencillo protocolo cliente-servidor que articula los intercambios de información entre los clientes Web como navegadores y los servidores HTTP.
Es el protocolo de comunicación que se usa en internet. HTTPS esta basado en este protocolo, es decir, es un HTTP con seguridad.
URL (Uniform Resource Locator)
Localizador uniforme de recursos.
La dirección que escribes en la barra del navegador web es una URL, es una dirección única para cada recurso disponible en un servidor web, además los enlaces que creas como parte de tu contenido también son URLS.
Formato JSON (JavaScript Object Notation)
Notación de objeto Javascript.
Es un formato de texto plano para el intercambio de datos; surge como alternativa a XML ya que su uso y manipulación son mucho más sencillos.
REST API de WordPress
Todas las definiciones anteriores están bien pero, ¿cómo se aplica esto a WordPress?
¿Te gustaría administrar tus entradas desde una aplicación móvil?, pues eso es precisamente lo que se logra a través de la REST API de WordPress.
La funcionalidad REST API de WordPress consiste básicamente en que podemos hacer uso de nuestro contenido sin necesidad de consultarlo solo a través de un sitio web.
Tal y como vemos en la siguiente imagen, es posible administrar contenido usando otras aplicaciones diferentes de un navegador.
Inicialmente esta funcionalidad estaba siendo desarrollada como un plugin separado, sin embargo a finales del año 2015 fue incluido como parte del core de WordPress 4.4
El uso de esta funcionalidad no está limitado únicamente al núcleo de WordPress, hay algunos plugins que también hacen uso de una REST API, por ejemplo, WooCommerce.
Haciendo consultas a la REST API de WordPress
En versiones actuales de WordPress ya tenemos disponible la REST API por defecto por lo que podemos hacer consultas directamente en el navegador usando una sintaxis de url.
Debemos agregar /wp-json/wp/v2/ a la url de petición, y adicionalmente agregar algún end-point.
Los end-points disponibles los podemos ver en la documentación para desarrolladores. Por ejemplo, para obtener el listado de las entradas usamos : /wp-json/wp/v2/posts, es decir, nuestra url de consulta sería:
https://tudominio.com/wp-json/wp/v2/posts
Debemos tener en cuenta que se devolverán como máximo 10 entradas, aunque es posible también agregar parámetros adicionales para especificar paginación y cantidad de entradas devueltas.
Por ejemplo, si queremos ver la segunda página de resultados usaríamos:
https://tudominio.com/wp-json/wp/v2/posts?page=2
En la siguiente imagen se muestra una consulta a la REST API de WordPress para devolver entradas; se ha usado un navegador y los datos devueltos están en formato JSON.
Tener en cuenta que no todos los navegadores muestran correctamente JSON, podrías también probar usar alguna aplicación como Postman para hacer consultas a las REST API de WordPress.
En la siguiente imagen se muestra la misma consulta a la REST API usando la aplicación Postman:
Lógicamente, también es posible hacer esta consulta a la REST API directamente a través de programación:
$url = "https://tuempresa.site/wp-json/wp/v2/posts"; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); $result = curl_exec($ch); curl_close($ch); var_dump(json_decode($result, true));
En el código anterior hemos usado PHP, sin embargo es posible usar cualquier otro lenguaje de programación.
Otras operaciones usando la REST API
En el caso de leer datos públicos de un sitio web, podemos usar la REST API directamente.
Evidentemente, el uso de la REST API de WordPress no se limita solo a operaciones de lectura, podemos igualmente crear, actualizar y eliminar datos. Sin embargo, para esto necesitamos algún método de autenticación.
Algunos métodos de autenticación son: autenticación Base, autenticación OAuth, autenticación por Cookie.
Existen plugins que nos pueden facilitar el trabajo de autenticación, por ejemplo, el plugin WP REST API Authentication
Para enviar los valores de autenticación será necesario hacerlo por programación, también puedes usar una aplicación como Postman para realizar estas operaciones tal como vimos anteriormente al realizar operaciones de lectura.