Revisar la documentación de los servicios web en Moodle

Desde hace algún tiempo se está poniendo especial interés en desarrollar en Moodle una capa de servicios web para facilitar el desarrollo de aplicaciones que interaccionen con Moodle e integren funcionalidades sin necesidad de acceder directamente a la base de datos o a librerías específicas de Moodle para conseguirlo.

Este post está motivado por resolver una duda que se planteó en una jornada de formación, y que por cuestión de tiempo no pude responder como se merecía; convencidos de querer utilizar servicios web para conectar dos aplicaciones web con un Moodle surgía la duda de donde encontrar las signaturas de los servicios web de los que pueden disponer.

La respuesta directa fue que se consultaba todo lo necesario en el propio Moodle en el que se están compartiendo servicios web, pero se dejó en el tintero indicar el lugar exacto donde consultar. Como la respuesta no es tan simple como indicar una URL, os pido disculpas por adelantado por la extensión del post.

Primeramente indicar que no voy a entrar en detalle de cómo se activan y gestionan los diferentes servicios web que se quieren dejar disponibles, tan solo indicar al respecto que el usuario que creemos en el sistema Moodle para ejecutar los servicios web NO DEBE POSEER EL ROL DE ADMINISTRADOR DEL SISTEMA, a parte de poder comprometer la integridad de todo Moodle, a los usuarios administradores no se les muestra la documentación de los servicios web, y esto es justo lo que queremos conseguir (y lo que impidió que mostrase donde consultar la documentación en la jornada de formación).

Se recomienda crear un rol específico para este tipo de usuarios, no duplicar ningún rol existente, sino que tan solo se le den los permisos expresamente necesarios para realizar las funciones que le dejaremos disponibles a través de servicios web (podréis comprobar esos permisos en el momento que autoricéis a un usuario sin ningún tipo de rol a utilizar un servicio web concreto) y dos más: Crear una ficha de servicio web (moodle/webservice:createtoken) y, dependiendo del protocolo de intercambio de información a utilizar, Usar protocolo XXXXX (webservice/xxxxx:use).

Tras crear este rol, lo asignaremos globalmente (recordad checkear la opción Sistema en los Tipos de contexto en que puede asignarse este rol a la hora de crear el rol) al usuario y le autorizaremos el uso del servicio web, a la vez que crearemos un token de autenticación para ese usuario en el servicio web en el que le hemos autorizado.

Debemos tener configuradas una serie de opciones en el sistema para poder utilizar servicios web, como será la activación de los mismos, la activación de los protocolos a utilizar, la activación de la generación de la documentación, la creación del servicio web y la asignación de funciones al mismo. Todos estos pasos están muy bien resumidos en la página accesible desde el enlace que encontraremos en el bloque de Ajustes: Administración del sitio > Extensiones > Servicios Web > Vista general.

Resumen de los pasos previos:

  1. Habilitar los servicios web en el sistema
  2. Activar los protocolos deseados y la generación de la documentación de servicios web
  3. Crear servicio web y agregar las funciones
  4. Crear usuario específico
  5. Crear rol con conjunto de servicios necesarios para la gestión de Moodle + ‘moodle/webservice:createtoken’ + ‘webservice/xxxxx:use’
  6. Asignar globalmente el rol creado al usuario
  7. Autorizar el acceso al servicio web creado
  8. Crear un token de autenticación para el usuario creado en el servicio web al que le hemos autorizado

Llegados a este punto ya habremos finalizado la labor de administración y pasaremos a loguearnos en el sistema como el usuario que hemos creado para utilizar los servicios web, tras lo cuál nos dirigiremos al bloque Ajustes, desplegaremos el menú de opciones Ajustes de mi perfil y haremos clic sobre el enlace Claves de seguridad.

Accederemos a un listado de las claves de seguridad creadas para ese usuario (tokens), las cuales deberemos utilizar en la función de conexión al servicio web desde las páginas de programación de la aplicación externa a Moodle para tener acceso a las funciones del servicio web. Acompañando a cada clave de seguridad y la descripción del servicio para la que fue creada, podremos observar un enlace con el texto Documentación, el cuál nos dirigirá a la página de documentación de las funciones que han sido dejadas disponibles en el servicio web del que estamos solicitando su documentación.

Al hacer clic sobre cualquier nombre de función se nos mostrará su signatura en pseudocódigo y en las estructura de datos de cada protocolo que hemos activado en el sistema y al que tiene permiso el usuario desde donde estamos examinando la documentación.

Pues ya solo queda programar las aplicaciones externas para interactuar con estas funciones tan bien descritas, pero esto será motivo de otro post, por el momento espero que os sirva para iniciaros en el manejos de servicios web en Moodle, y me pongo a vuestra disposición para las dudas que os surjan al respecto.

Anuncios

Acerca de Alexander Ángel Corrochano

Ingeniero informático con una dilatada experiencia en el campo del e-learning.

Publicado el 1 septiembre 2011 en Moodle, servicios web. Añade a favoritos el enlace permanente. 5 comentarios.

  1. Andrea Katherine Muñoz

    Me ayudó mucho para la preparación de moodle para una aplicación web externa. Tienes ejemplos del codigo xml-rpc que debo usar para hacer la conexión…
    Gracias

  2. Andrea Katherine Muñoz

    La aplicación externa la tengo en php (es un cuestionario de Felder y Silverman- estilos de aprendizaje) y ahora necesito usar esos resultados en la plataforma moodle.

    • En la versión 2.2 han aumentado considerablemente la cantidad de servicios web y la forma de acceso a su documentación, aunque ninguno de los proporcionados hasta el momento te permite manejar las calificaciones de los alumnos, por lo que para tu necesidad concreta quizá deberías buscar otro enfoque, aprovechando la nueva actividad incorporada en la versión 2.2: “External tool”.

    • Amiga Andrea Katherine Muñoz yo estoy tratando de hacer lo mismo que tu, pero me pregunto si lograste tu objetivo y como, ¿podrías apoyarme en este punto?, cree un archivo php para generar cuestionario, quiero igual guardar el resultado en la plataforma moodle, gracias, bendiciones.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: