Este es un ejemplo práctico de cómo probar una llamada REST con Moodle, usando CURL, en un entorno Local utilizando Ddev.
Requisitos Previos
Tener DDEV instalado
Un sitio Moodle instalado en DDEV
Acceso como administrador en Moodle
Conocimiento del servicio web que deseas probar (nombre del servicio, funciones, parámetros, etc.)
Paso 1: Crear un Servicio Web en Moodle
Ingresa a tu sitio Moodle como administrador
Ve a:
Administración del sitio > Extensiones > Servicios web > Gestionar servicios
Crea un nuevo servicio web (si no tienes uno):
Clic en "Agregar"
Nómbralo y márcalo como "Habilitado"
Añade funciones al servicio:
Ejemplo:
core_user_get_users
Paso 2: Crear un Token para Acceder
Ve a:
Crea un token:
Usuario: uno con permisos suficientes
Servicio: el que creaste antes
Guarda el token, lo usarás para hacer las peticiones
🧪 Paso 3: Probar el Webservice desde DDEV
Opción A: Usar CURL desde el contenedor
Entra al contenedor web:
Usa
curl
para llamar a la función (por ejemplo,core_user_get_users
):
curl -X POST "https://scsmoodle.ddev.site/webservice/rest/server.php" \
--data "wstoken=7241eb6311891ccacce9b04e94654500" \
--data "wsfunction=core_user_get_users" \
--data "moodlewsrestformat=json" \
--data-urlencode 'criteria[0][key]=email' \
--data-urlencode 'criteria[0][value]= apiuser@ejemplo.com'
curl "https://scsmoodle.ddev.site/webservice/rest/server.php" \
--data "wstoken=7241eb6311891ccacce9b04e94654500" \
--data "core_course_get_categories" \
--data "moodlewsrestformat=json" \
--data-urlencode 'criteria[0][key]=email' \
--data-urlencode 'criteria[0][value]= apiuser@ejemplo.com'