Servicios web en Drupal 8: configuracion y GET.

Una de las tantas revoluciones de Drupal 8, ha sido el disponer de servicios web en el core, gracias a los cuales, podemos utilizar drupal para gestionar datos en el backend, y acceder a ellos desde cualquier lado, ya sea una app para iOS o Android, o montarnos nosotros mismos el front-end de nuestra web y obtener los datos con Angular o la libreria js que mas nos guste.

Esa va a ser la primera parte, de una serie de pequeños articulos sobre como interactuar con los servicios web en Drupal 8. En este caso, veremos como configurarlo y realizar una peticion GET simple a un contenido, pero podemos obtener contenido, editarlo, eliminarlo o crearlo, ademas, utilizar views para realizar listados o busquedas con los filtros.

Para utilizar los servicios web en Drupal 8, unicamente debemos irnos a los modulos, y activar los siguientes modulos:

HTTP Basic Authentication: Este modulo nos servira para poder autenticarnos en Drupal a traves de la api.

RESTfull web Services: Este es el modulo que nos permite tener los endpoint para el acceso a los datos.

Serialization: Con este podemos convertir los datos a Json o XML.

Ademas, nos vendra muy bien el modulo RestUI, el cual tambien instalaremos, este modulo nos añade una interfaz de configuracion para distintos endpoint.

Con esto ya tenemos lo basico, ahora debemos realizar ciertas configuraciones.

Activar los endpoint en RestUI y configurar los permisos:

Lo primero es activar los endpoint que queramos para nuestra api, por defecto, viene activo el acceso a los nodos, estos endpoint los podemos configurar desde "Configuracion -> Servicios web -> Rest" (/admin/config/services/rest).

Dentro nos encontraremos un listado de todas las rutas que nos permite activar el modulo. En este caso, unicamente vamos a acceder al contenido, a si que nos vamos a editar la configuracion de /node/{node}. Al editar veremos las operaciones que nos permite realizar, en que formato respondera y la manera de autenticarnos. En este caso, voy a activar json como formato de respuesta, y basic_auth como metodo de autenticacion.

Ahora vamos a configurar los permisos, esto lo hacemos desde "Personas -> Permisos" (/admin/people/permissions), buscamos el grupo de permisos "RESTful Web Services", y activamos los que queramos, yo para esta prueba voy a activarlos todos para todos los usuarios.

Lo conveniente, seria ajustar los permisos tal y como los necesitemos, por ejemplo, no permitirle al usuario anonimo realizar un DELETE.

 

Haz click en "SIGUIENTE" para ver como realizar una petición GET

Páginas

Total de votos: 39

Entradas relacionadas

Comentarios (2)

  • Imagen de Enrique

    Enrique (no verificado)

    hola borja!! muy interesante el articulo.. estoy queriendo configurar un web services, me preguntaba como se debe proceder para configurar un endpoint que este asociado a mi base de datos..(con la tabla productos por ejemplo) no encuentro esa info, todos los ejemplos que encuentro son con "Content" se puede hacer esto?

  • Imagen de borja

    borja

    Buenos dias Enrique, disculpa por la demora en contestar. Sobre lo que me preguntas la verdad que todavia ni lo he mirado, lo que voy escribiendo es lo que voy probando y haciendo en D8, aun tengo pendientes articulos sobre el uso de views (Este esta a medio hacer), DELETE, POST, PATCH y autentificacion con Basic Auth. Pero podrías mirar de crear tu un endpoint, y enviar la respues utilizando el modulo Serialization del core probar a enviar una respuesta. Lo unico si esa tabla pertenece a una entidad, siempre tendras disponibles los endpoint proporcionados por el core. Un saludo.

  • Páginas

Deja un comentario