3

Cómo conectar Node.js con el REST API de WordPress.com

54Puntos

hace 9 años

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.

Qué es 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.

¿Cuál es su función?

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. 😄

Node.js

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:

Node.js & Wordpress.com

Client-side

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.

Objeto de Wordpress.com en consola

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.

Conclusió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 😃

Damián Suárez
Damián Suárez
retrofox

54Puntos

hace 9 años

Todas sus entradas
Escribe tu comentario
+ 2