Configurar la autenticación básica con el módulo de autenticación básica HTTP
Autenticación para operaciones CRUD con JSON:API
Al interactuar con JSON:API, se pueden utilizar herramientas como Postman o cURL para enviar solicitudes. Por defecto, las solicitudes realizadas a través de estas herramientas se tratan como si provinieran de un usuario "anónimo", ya que no gestionan la autenticación de usuarios de forma inherente. Como resultado, el acceso a ciertos recursos puede estar restringido según los permisos configurados para los usuarios anónimos en tu sitio Drupal.
Sin embargo, si tu objetivo es realizar operaciones de creación, actualización o eliminación (CRUD) a través de JSON:API, depender únicamente del acceso anónimo no es suficiente. Estas operaciones requieren acceso autenticado. Drupal admite múltiples métodos de autenticación, los cuales se pueden habilitar mediante varios módulos contribuidos y del núcleo.
Uno de los métodos más utilizados es la autenticación básica HTTP, que está incluida en el núcleo de Drupal. Para casos más avanzados, módulos como Drupal REST & JSON API Authentication ofrecen capacidades de autenticación extendidas y opciones de personalización, permitiéndote adaptar el modelo de seguridad a las necesidades de tu aplicación.
Pasos para realizar una solicitud autenticada
- Para este ejemplo asegúrate de que todas las operaciones estén habilitadas
- Habilita el módulo de autenticación básica HTTP
- Crea un rol para el usuario API
- Concede los permisos necesarios para el rol. /admin/people/permissions/api_user
- Para este ejemplo, asegúrate de conceder el permiso
*Artículo*: Crear nuevo contenido
- Crea un usuario con el permiso de usuario API. /admin/people/create
- Configura la autorización en Postman. Usa la cuenta recién creada
- Añade la cabecera Content-Type
application/vnd.api+json
- Actualiza el cuerpo:
{ "data": { "type": "node--article", "attributes": { "title": "Esta página se creó mediante JSON:API", "body": { "value": "algún texto del cuerpo", "format": "plain_text" } } } }
- Envía la solicitud y observa la respuesta. Si el código de estado es 201, has realizado exitosamente una solicitud autenticada a tu JSON:API y creado un nodo de tipo artículo.
JSON:API es una especificación potente y estandarizada que simplifica el proceso de crear APIs en Drupal. Introducida como un módulo del núcleo a partir de Drupal 8 y versiones posteriores, permite a los desarrolladores exponer contenido y datos a través de una API coherente y bien definida sin necesidad de un desarrollo personalizado extenso.
Al habilitar simplemente el módulo JSON:API, obtienes acceso inmediato a una API estructurada que cumple la especificación JSON:API. Esto permite interactuar fácilmente con el contenido de tu sitio Drupal utilizando patrones de URL intuitivos y formatos de respuesta predecibles, lo cual es ideal para aplicaciones frontend, integraciones y arquitecturas desacopladas.
Para explorar capacidades más avanzadas y mejores prácticas, consulta la Documentación del módulo Drupal JSON:API. La documentación ofrece una guía completa sobre características como paginación, filtrado, ordenación, carga de archivos y más, ayudándote a aprovechar todo el potencial de JSON:API dentro de tu proyecto Drupal.