Blog


Servicios web RESTful en Drupal 8

SERVICIOS WEB RESTFUL EN DRUPAL 8

27 / 07 / 2016 Drupal

Uno de los nuevos desarrollos que incluye la última versión de Drupal que más nos gusta son los servicios web. En versiones anteriores no era tarea fácil la de trabajar con servicios web, pero en la versión 8 de Drupal vienen incluidos directamente en el Core, lo que permite interactuar con nuestras aplicaciones Drupal para consumir información, sin necesidad de instalar módulos de terceros. En este artículo queremos echar un vistazo a los servicios web RESTful del Core de Drupal 8 y ver algún ejemplo.

Antes de seguir, debemos saber qué es eso de los servicios web RESTful. Los servicios web aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen, en nuestro caso permitiendo que aplicaciones externas puedan comunicarse con nuestra aplicación Drupal. Las acciones más comunes que se llevan a cabo a través de estos servicios web son las de lectura, creación, actualización y borrado de recursos. REST (Representational State Transfer) es uno de los estándares más usados, que utiliza el protocolo HTTP para proporcionar los métodos necesarios para realizar las distintas operaciones disponibles de lectura, creación, actualización, borrado, etc. en la comunicación entre la aplicación y los clientes que se conectan a ella.

Estos son los módulos que se incluyen en el Core de Drupal 8 relacionados con los servicios web:

Lo primero que haremos para poder utilizar toda su funcionalidad, será habilitarlos y acceder a la configuración de los permisos del módulo RESTful Web Services para los métodos comunes de HTTP, GET, POST, PATCH y DELETE. Cada uno de estos métodos permite realizar una operación sobre un recurso de la aplicación, por ejemplo, usaremos GET para leer un contenido específico como una noticia o POST para crear una nueva, PATCH para actualizarla o DELETE para eliminarla.

Llegados aquí, ya estamos en condiciones de probar el servicio web RESTful habilitado en nuestra aplicación Drupal 8. Para ello, nosotros usamos la extensión para Chrome DHC REST Client que nos permitirá realizar llamadas al servicio web y probar su funcionamiento, aunque hay otras muchas herramientas similares que se pueden utilizar.

Por ejemplo, podemos recuperar la información del nodo 1, realizando una petición a http://nuestrositioweb/node/1, añadiendo el parámetro Accept=application/hal+json que habilite la serialización HAL JSON antes de enviar la solicitud GET y si no hay ningún problema, obtendremos como respuesta a nuestra petición el nodo con todos los campos serializados en HAL JSON.

Para finalizar, os recomendamos el uso de un módulo contribuido, REST UI, que proporciona una interfaz de usuario para configurar el REST API de Drupal, habilitando o deshabitando recursos, formatos de serialización, etc.

Hasta aquí esta introducción a los servicios web en Drupal 8. En un artículo posterior, veremos un ejemplo de cómo crear vistas que devuelvan un listado de contenido en JSON a través del REST API.



ARTÍCULOS RELACIONADOS