REST UI

Proporciona una interfaz de usuario para gestionar recursos REST en Drupal.

restui
47,827 sites
94
drupal.org

Install

Drupal 11, 10, 9 v8.x-1.22
composer require 'drupal/restui:8.x-1.22'
Drupal 8 v8.x-1.21
composer require 'drupal/restui:8.x-1.21'

Overview

REST UI es un módulo de interfaz administrativa que permite a los administradores del sitio gestionar los recursos REST proporcionados por el módulo REST del core de Drupal. Sin este módulo, los recursos REST deben configurarse mediante archivos de configuración YAML o comandos de Drush.

El módulo proporciona una página de administración centralizada donde los administradores pueden ver todos los recursos REST disponibles, habilitarlos o deshabilitarlos, y configurar sus ajustes incluyendo los métodos HTTP soportados, los formatos de solicitud aceptados (JSON, XML, etc.) y los proveedores de autenticación (cookie, basic_auth, OAuth, etc.).

REST UI soporta dos niveles de granularidad de configuración: a nivel de recurso (aplicando los mismos formatos y autenticación a todos los métodos) y a nivel de método (configurando cada método HTTP por separado). Esta flexibilidad permite un control detallado sobre cómo se exponen los recursos REST a los consumidores de la API.

Features

  • Lista todos los recursos REST disponibles en Drupal organizados por estado habilitado/deshabilitado
  • Habilitar y deshabilitar recursos REST a través de una interfaz de apuntar y hacer clic
  • Configurar los métodos HTTP soportados (GET, POST, PUT, PATCH, DELETE) para cada recurso
  • Configurar los formatos de solicitud aceptados (JSON, XML, HAL+JSON, etc.) por recurso o por método
  • Configurar los proveedores de autenticación (cookie, basic_auth, OAuth, etc.) por recurso o por método
  • Dos opciones de granularidad de configuración: configuración a nivel de recurso o a nivel de método
  • Muestra las rutas de los recursos y los métodos disponibles de un vistazo
  • Muestra la configuración actual de los recursos habilitados (métodos, formatos, autenticación)
  • Enlaces rápidos a la configuración de permisos relacionados
  • Indicación visual de los métodos deshabilitados dentro de los recursos habilitados usando formato de tachado

Use Cases

Configurar una instalación headless de Drupal

Al construir un sitio Drupal desacoplado o headless donde el frontend está construido con React, Vue, Angular u otro framework JavaScript, REST UI proporciona una forma fácil de habilitar y configurar los recursos REST necesarios para exponer el contenido. Habilite el recurso entity:node con el método GET, formato JSON y autenticación apropiada para permitir que el frontend obtenga contenido.

Construir un backend para aplicación móvil

Para aplicaciones móviles que necesitan leer y escribir contenido en Drupal, use REST UI para habilitar recursos de entidad con operaciones CRUD completas (GET, POST, PATCH, DELETE). Configure la autenticación apropiada (basic_auth para desarrollo, OAuth para producción) y formatos (JSON para la mayoría de frameworks móviles).

Habilitar endpoints API específicos para integraciones de terceros

Al integrar con servicios externos que necesitan acceso a datos específicos de Drupal, use REST UI para habilitar selectivamente solo los recursos requeridos. Por ejemplo, habilite el recurso entity:user con solo el método GET para un servicio de directorio, o entity:taxonomy_term para un servicio de etiquetado.

Configurar diferente autenticación por método

Use granularidad a nivel de método cuando necesite diferentes configuraciones de seguridad por operación. Por ejemplo, permita solicitudes GET anónimas con autenticación cookie para lectura de contenido público, pero requiera autenticación OAuth para operaciones POST/PATCH/DELETE que modifican contenido.

Probar API REST durante el desarrollo

Durante el desarrollo, REST UI proporciona una forma rápida de habilitar/deshabilitar recursos y cambiar configuraciones sin editar archivos YAML. Los desarrolladores pueden probar fácilmente diferentes combinaciones de formato y autenticación a través de la interfaz antes de finalizar la configuración para el despliegue.

Gestionar recursos REST entre entornos

Aunque REST UI es principalmente una interfaz de configuración, las configuraciones que crea se almacenan como config entities (configuración rest.resource.*) que pueden exportarse y desplegarse entre entornos usando el sistema de gestión de configuración de Drupal. Esto permite la configuración inicial mediante la interfaz y el despliegue consistente mediante sincronización de configuración.

Tips

  • La granularidad a nivel de recurso es recomendada para la mayoría de casos de uso ya que es más simple de gestionar y se alinea con las mejores prácticas RESTful
  • Al habilitar proveedores de autenticación, asegúrese de que el módulo de autenticación correspondiente esté instalado y configurado (ej., módulo basic_auth para Autenticación HTTP Básica)
  • Los recursos de config entity (como Views, Content Types, etc.) solo soportan operaciones GET y se muestran como solo lectura en la interfaz
  • Después de cambiar la configuración de recursos REST, limpie la cache para asegurar que las rutas se reconstruyan
  • Use el enlace de Permisos para configurar rápidamente qué roles pueden acceder a recursos REST específicos
  • El módulo requiere que al menos un método, un formato y un proveedor de autenticación estén seleccionados al guardar una configuración de recurso
  • Para sitios en producción, prefiera autenticación cookie para clientes basados en navegador y OAuth o JWT para comunicación máquina a máquina

Technical Details

Admin Pages 2
REST /admin/config/services/rest

Página principal de administración para ver y gestionar todos los recursos REST. Muestra dos secciones: recursos Habilitados y Deshabilitados. Cada recurso muestra su nombre, ruta(s) URI, métodos HTTP soportados y configuración actual. Los recursos habilitados muestran sus métodos, formatos y proveedores de autenticación configurados. Los recursos para config entities están marcados como solo lectura ya que solo soportan operaciones GET.

Configuración del recurso [Nombre del Recurso] /admin/config/services/rest/resource/{resource_id}/edit

Formulario de configuración para habilitar y configurar un recurso REST específico. Permite seleccionar la granularidad (nivel de recurso o método) y configurar los métodos HTTP, formatos de solicitud y proveedores de autenticación.

Permissions 1
Administrar recursos REST

Permite a los usuarios ver la lista de recursos REST, habilitar/deshabilitar recursos y configurar los ajustes de los recursos incluyendo métodos, formatos y proveedores de autenticación. Este permiso es proporcionado por el módulo REST del core y es requerido para acceder a todas las páginas de REST UI.

Hooks 1
hook_help

Proporciona texto de ayuda contextual para las páginas de REST UI explicando el propósito de cada página administrativa.

Troubleshooting 6
No aparecen recursos en la lista de REST UI

Asegúrese de que los módulos que proporcionan plugins de recursos REST estén instalados. Los módulos del core como Node, User, Comment, etc., cada uno proporciona sus propios recursos REST de entidad cuando el módulo REST está habilitado.

Los cambios en la configuración del recurso no tienen efecto

Limpie la cache de Drupal después de hacer cambios en las configuraciones de recursos REST. El módulo REST almacena en cache las definiciones de rutas que necesitan ser reconstruidas.

La opción de autenticación no aparece en el formulario

Asegúrese de que el módulo del proveedor de autenticación esté instalado y habilitado. Por ejemplo, la opción basic_auth requiere que el módulo Basic Auth esté habilitado.

La opción de formato no aparece en el formulario

Asegúrese de que el módulo de formato de serialización esté instalado. Formatos adicionales más allá de JSON requieren módulos como HAL (para hal_json) o módulos de serialización personalizados.

Obteniendo error 403 Acceso Denegado al acceder a endpoints REST

Verifique que el rol de usuario tenga los permisos necesarios para el recurso REST. Visite la página de Permisos (enlazada desde REST UI) y asegúrese de que los roles tengan 'Access GET on [resource] resource' y permisos similares.

Las operaciones POST/PATCH/DELETE no funcionan en recursos de config entity

Los recursos de config entity (como Views, Block types, etc.) son de solo lectura en la API REST debido a limitaciones del core. Estos recursos solo soportan operaciones GET como indica la etiqueta '(solo lectura)' en REST UI.

Security Notes 6
  • Siempre use HTTPS en producción al habilitar recursos REST, especialmente con autenticación basic_auth que transmite credenciales en los encabezados de solicitud
  • Revise cuidadosamente qué proveedores de autenticación habilitar - la autenticación cookie puede exponer recursos a ataques CSRF si no está correctamente configurada
  • El permiso 'administer rest resources' es poderoso y solo debe otorgarse a roles de administrador de confianza
  • Considere usar granularidad a nivel de método para aplicar autenticación más estricta a operaciones de escritura (POST, PATCH, DELETE) mientras permite acceso más permisivo a operaciones de lectura (GET)
  • Audite regularmente los recursos REST habilitados para asegurar que solo los endpoints necesarios estén expuestos
  • Al usar basic_auth, asegúrese de que el módulo Basic Auth esté correctamente configurado y considere implementar limitación de velocidad para prevenir ataques de fuerza bruta