Hace unos días atrás ví este artículo de Cesar Anton llamado “WordPress REST API y Google Charts: reportes a la medida”. Me pareció muy interesante y a la vez era una prueba más de que la REST API de WordPress nos permite conectarnos a distintas tecnologías libremente. Por este motivo fue que me surgió la inquietud de contarles acerca de WPCOM.JS.
WPCOM.JS es un módulo escrito completamente en Javascript, 100% compatible con Node.js, el cual nos facilita la conexión y operación con la REST API de WordPress. También este se puede ejecutar client-side (en un browser) lo que lo hace aún más interesante.
WPCOM.JS funciona como una capa de abstracción que permite realizar operaciones haciendo requests a los distintos endpoints de la REST API de WordPress, simplificando notablemente esta labor. En otras palabras, WPCOM.JS expone una api más amigable y, naturalmente, Javascript friendly.
De esta manera podemos obtener recursos de WordPress sin preocuparnos por la constitución de las urls, entre otras cosas. Por ejemplo, si se quiere obtener información del blog “en.blog.wordpress.com” podríamos utilizar jQuery.get() de la siguiente manera:
$.get( "https://public-api.wordpress.com/rest/v1.1/sites/en.blog.wordpress.com")
.done( function(data) { // data }) .error( function(error) { // error });
Con WPCOM.JS tenemos el siguiente código:
wpcom.site(“en.blog.wordpress.com”).get(function(err, data){
// err y data objects });
El objetivo principal es simplificar. 😄
Como comentaba anteriormente, WPCOM.JS funciona como módulo Nodejs. En el siguiente ejemplo vemos cómo obtener los últimos posts también del blog “en.blog.wordpress.com”:
Instalar wpcom con npm
npm install wpcom
Crear un archivo index.js
var WPCOM = require(‘wpcom’);
var wpcom = WPCOM();
var site = wpcom.site(‘en.blog.wordpress.com’);// get posts list
site.postsList(function(err, data) {
if (err) return console.log(err);
console.log(data);
);
Run the script
nodeindex.js
Esta es una captura de la salida:
Vamos a implementar el mismo script pero en un browser:
Creamos un simple archivo index.html donde cargamos el archivo compilado wpcom.js. Este puede ser descargado desde el repositorio de GitHub.
Agregamos el script propiamente dicho y ejecutamos el mismo script.
wpcom.js browser example
var wpcom = WPCOM();
wpcom
.site('en.blog.wordpress.com')
.postsList(function(err, data){
if (err) throw err;
console.log(data);
});
Boom !!! En la consola de nuestro browser podemos ver el resultado. Esta es una captura de chrome.
También podemos ver el ejemplo funcionando en este repositorio de GitHub http://retrofox.github.io/platzy/ que he creado simplemente para mostrar su funcionamiento. No olvidar inspeccionar la consola 😄.
Una característica muy importantes de WPCOM.JS es que soporta CORS lo cual nos permite realizar requests desde el cliente a cualquier dominio. Se puede apreciar en el ejemplo anterior, en el que se hace un request asincrónico desde github.com a WordPress.com.
También no perdamos de vista que estos ejemplos son métodos que no modifican los datos alojados en el servidor. Para poder hacerlo podemos utilizar OAuth para hacer una autenticación con el servidor, obtener un token, y de esta manera poder administrar los datos del servidor desde nuestra aplicación.
Como se puede ver en estos ejemplos, el punto más fuerte de WPCOM.JS es su sencillez. Hay muchos métodos que nos permite extraer datos de un sitio de WordPress. Este es el repositorio oficial de GitHub donde pueden encontrar la totalidad de los mismos.
Este pequeño artículo es una intro; quedan muchas cosas aún por ver, por ejemplo el caso de la utilización de tokens, módulos OAuth, cómo conectar un blog self-hosted con WPCOM.JS, etc. Te invito a conocer el proyecto e ir un poco más a fondo con tus experimentos y darlos a conocer.
Si tienes dudas puedes dejarlas en los comentarios, con gusto te ayudaré a aclararlas 😃