Moodle web services

Acceso rápido:
Inicio de sesión en Moodle
local_myplugin_create_groups($groups) tomará una lista de grupos como parámetros y devolverá los mismos grupos con su id recién creado. Si alguna vez falla la creación de un grupo, la función lanzará una excepción y no se producirá ninguna creación.
Lo primero que debes codificar es un cliente de prueba de servicio web. A menudo descubrirás casos de uso en los que no habías pensado. Aquí no mostramos ningún código de cliente de prueba, vea Cómo crear un cliente de servicio web.
Nota: Debido a que algunos protocolos de servicios web son estrictos en cuanto al número y tipo de argumentos, no es posible especificar un parámetro opcional como uno de los parámetros principales de una función. Ejemplos:
Esta función validate_parameters valida los parámetros externos de la función contra la descripción. Devolverá una excepción si faltan algunos parámetros requeridos, si los parámetros no están bien formados, y comprobará la validez de los parámetros. Es esencial que realice esta llamada para evitar posibles hackeos.
Importante: los parámetros de la función externa y su declaración en la descripción deben estar en el mismo orden. En este ejemplo sólo tenemos un parámetro llamado $groups, así que no necesitamos preocuparnos por el orden.
Fichero de servicio web
La arquitectura centrada en API es algo que se avecina en los círculos tecnológicos. Es la forma en que los vendedores y los informáticos centrales construirán sistemas. También va a ser maná del cielo para las personas institucionalizadas que se están rompiendo un poco BAD.
Moodle permite que los plugins definan una API de servicios web. La pregunta es, cuántos plugins proporcionan esto y qué parte del núcleo de Moodle ha expuesto APIs. Es probable que sea bastante grande dado que las APIs se utilizan cada vez más para dispositivos móviles.
La API de funciones externas aparentemente "permite crear métodos totalmente parametrizados a los que pueden acceder programas externos (como la API de servicios web)". Buscar pruebas de ello en mi instalación de Moodle es un poco más alentador.
Api de reposo de Moodle
Este documento explica cómo un administrador puede configurar un servicio web para que los usuarios accedan a un servicio. Cada usuario tendrá una clave de seguridad específica y única (también conocida como "token") para acceder al servicio.
Si se habilita la documentación de las funciones del servicio web (también en la página Gestionar protocolos), la documentación del servicio web específica del usuario estará disponible para cada usuario en su página Claves de seguridad. Esta opción es útil sobre todo para los desarrolladores de clientes de servicios web. Si nadie está creando un cliente de servicio web, no es necesario activar esta función.
Añadir funciones al servicioTu servicio está actualmente vacío y no hace nada. Es necesario añadir funciones al servicio web. Su elección vendrá dictada por lo que permita hacer a la aplicación externa. Para este ejemplo, seleccione 'Crear grupo'.
Debería volver a la lista de funciones de servicio. Para cada función se indican las "capacidades requeridas". Los usuarios necesitan las capacidades requeridas para ejecutar una función. Las descripciones de las funciones en la Documentación de la API también pueden ofrecerle más información sobre las capacidades necesarias (Administración > Administración del sitio > Servidor > Servicios web > Documentación de la API).
Ejemplo de api de servicio web de Moodle
Ya existe una etiqueta con el nombre de rama proporcionado. Muchos comandos Git aceptan tanto nombres de etiqueta como de rama, por lo que crear esta rama puede causar un comportamiento inesperado. ¿Estás seguro de que quieres crear esta rama?
Finalmente, por defecto todas las peticiones de webservice de Moodle devuelven el código de estado HTTP 200 independientemente del éxito o fracaso de la llamada. Este plugin devolverá códigos de estado de la serie 4XX si las llamadas están malformadas, faltan datos o no están autorizadas. Esto permite a los servicios externos que se comunican con Moodle determinar el éxito o el fracaso de una llamada a un webservice sin necesidad de analizar el cuerpo de la respuesta.
Había dos razones relacionadas para hacer este plugin. La primera fue resolver un problema técnico; interconectar Moodle con un servicio que requería que cada servicio web de Moodle pudiera ser llamado desde una URL única. La segunda era avanzar en la madurez de la interfaz de servicios web de Moodle.
