En el desarrollo web moderno es cada vez más habitual trabajar con APIs REST, sobre todo en entornos desacoplados donde el backend y el frontend van por separado. Drupal, conocido por su versatilidad como CMS, también es una herramienta muy potente para construir APIs. Y si a esto le sumamos el uso de Postman, una aplicación muy útil para probar y documentar servicios web, tenemos una combinación ganadora.
En este artículo vamos a ver en profundidad cómo usar Postman con Drupal para consumir, probar y validar tus servicios REST de una forma cómoda y eficaz. Vamos a detallar cada paso desde cero, entendiendo qué módulos necesitamos en Drupal, cómo construir rutas API y cómo comunicarnos con ellas desde Postman.
¿Qué es una API REST y por qué usarla en Drupal?
Una API REST (Representational State Transfer) permite extraer, enviar o modificar información en un sistema utilizando el protocolo HTTP. Es independiente del lenguaje de programación y del sistema operativo, siempre que utilice un formato de intercambio como JSON o XML.
En el caso de Drupal, la ventaja es que desde la versión 8 ya incorpora en su núcleo los módulos necesarios para crear servicios REST sin necesidad de instalaciones externas. Esta capacidad ofrece muchas posibilidades para conectar Drupal con aplicaciones móviles, frameworks JavaScript como React o Angular, u otros sistemas externos.
Ventajas de usar APIs REST en Drupal
- Separación clara entre backend y frontend: permite desarrollar interfaces independientes sin comprometer la lógica del servidor.
- Escalabilidad y portabilidad: los servicios REST pueden ser consumidos en diferentes plataformas sin alterar su lógica.
- Mantenimiento más sencillo: al tener endpoints específicos, los errores son más fáciles de localizar y solucionar.
- Compatibilidad total con Postman: puedes probar fácilmente los endpoints, enviar datos, autenticarse y validar respuestas.
Herramientas previas necesarias
Antes de ponernos manos a la obra con Drupal y Postman, necesitas contar con el siguiente entorno:
- Un sitio Drupal 8, 9 o 10 funcional.
- Composer para gestionar dependencias PHP.
- Drush para administrar Drupal desde la línea de comandos.
- Postman instalado en tu máquina.
Además, se recomienda tener un entorno local funcional basado en herramientas como DDEV o Docker para facilitar el trabajo de desarrollo.
Activación de módulos REST en Drupal
Para que Drupal pueda comportarse como una API, debemos activar ciertos módulos incluidos en el core:
- RESTful Web Services: permite exponer entidades Drupal como servicios REST.
- Serialization: sirve para transformar datos hacia o desde formatos como JSON o XML.
- HAL: un formato específico basado en JSON y XML que estructura las respuestas.
- HTTP Basic Authentication: permite autenticar usuarios utilizando cabeceras HTTP.
La activación se puede hacer desde la interfaz de administración accediendo a Extend o mediante comandos Drush:
drush en rest serialization hal basic_auth
Creación de contenidos y estructura básica
Para tener algo que consultar vía API, podemos crear un tipo de contenido (por ejemplo, “Artículo” o “Tarea”) y generar varios nodos manualmente o de forma automatizada. Una opción muy útil es usar el módulo Devel y su submódulo Devel Generate para generar contenido de prueba:
composer require --dev drupal/devel
drush en devel devel_generate
drush genc 20 --bundles=article
Este comando generará 20 artículos que servirán para probar los endpoints más adelante.
Creación del endpoint REST en Drupal
La forma más sencilla de exponer contenido en Drupal como API es mediante el sistema de vistas (Views). Estos son los pasos:
- Ve a Structure > Views > Add View.
- Asigna un nombre (por ejemplo, “Artículos”).
- Selecciona el tipo de contenido que quieres mostrar (por ejemplo, Article o Tarea).
- Marca la casilla Provide a REST export.
- Define la URL de acceso, como api/v1/articles.
Con esto ya tienes una ruta accesible públicamente desde tu navegador o desde Postman: https://tusitio.dominio/api/v1/articles
Configurar el formato y campos en la vista
Para que la API no devuelva información irrelevante, puedes configurar la vista en los siguientes apartados:
- Formato (Format): selecciona hal_json o json.
- Mostrar (Show): elige “Fields” para especificar los campos que quieres exponer.
- Authentication: activa la autenticación básica si deseas proteger los datos.
- Access: limita el acceso a usuarios autenticados mediante roles.
Después de guardar la vista, puedes acceder a ella desde Postman añadiendo el parámetro necesario (como _format=hal_json
) o configurando por defecto el formato correcto desde la vista.
Securizando la API con autenticación
Proteger los datos es fundamental si vas a exponer información sensible. Drupal permite varios métodos de autenticación, pero para un uso básico y pruebas con Postman, lo más sencillo es usar Basic Auth.
Cómo proteger la vista con autenticación básica
- Edita la vista y localiza el apartado Path Settings.
- Selecciona basic_auth como método de autenticación.
- En la sección Access, cambia “Permission” por “Role” y selecciona “Authenticated user”.
Ahora al intentar acceder sin credenciales te devolverá un error 401.
Para probar que funciona desde Postman:
- Abre Postman y selecciona tu ruta REST.
- Ve a la pestaña Authorization.
- Elige “Basic Auth” e introduce tus credenciales (usuario y contraseña de Drupal).
Al enviar la petición correctamente autenticada, la API devolverá el contenido deseado.
Uso de Postman para interactuar con la API
Postman permite realizar peticiones REST con diferentes métodos (GET, POST, PATCH, DELETE) y añadir cabeceras personalizadas.
Estas son las cabeceras más comunes al trabajar con Drupal:
- X-CSRF-Token: necesario para evitar ataques CSRF en peticiones POST, PATCH y DELETE. Se puede obtener desde la URL:
/session/token
. - Authorization: define el tipo de autenticación. En este caso, Basic Auth.
- Content-Type: indica el formato de los datos que estás enviando (
application/json
oapplication/hal+json
).
Ejemplos prácticos con Postman
Consultar contenido (GET)
GET https://tusitio.dominio/api/v1/articles
Cabeceras necesarias:
- Authorization: Basic Auth
- Content-Type: application/json
Consultar un nodo específico
GET https://tusitio.dominio/api/v1/articles/2
Crear un nuevo nodo (POST)
POST https://tusitio.dominio/entity/node
Además de las cabeceras anteriores, necesitas añadir el X-CSRF-Token y enviar el cuerpo de la petición con los datos del nodo.
Actualizar nodo (PATCH)
PATCH https://tusitio.dominio/node/2
Eliminar nodo (DELETE)
DELETE https://tusitio.dominio/node/2
En todos los casos es importante que uses un usuario que tenga permisos para realizar ese tipo de operación sobre el contenido.
Postman como herramienta de documentación y automatización
Una de las grandes ventajas de Postman es que puedes guardar todas tus peticiones dentro de colecciones, exportarlas y compartirlas con tu equipo. Además, permite realizar automatizaciones con scripts previos y posteriores a las peticiones, runners para ejecutar todo el flujo de llamadas y gestión de variables de entorno.
También puedes crear mocks para simular un endpoint antes de que el backend esté terminado, lo cual es ideal para trabajar en paralelo con el equipo de frontend.
Y si quieres dar un paso más allá, hay herramientas derivadas como Postmanerator, que generan documentación a partir de tus colecciones Postman.
Usar Postman con Drupal facilita la prueba y validación de tus APIs REST, mejora la colaboración en equipo y acelera el desarrollo. Siguiendo estos pasos, puedes tener un sistema REST sólido y seguro en poco tiempo, con toda la potencia que Drupal ofrece por defecto desde sus versiones más recientes.
Comentarios