Moodle webservices, LTI 1.3, Java

Moodle webservices, LTI 1.3, Java

par Georg Kallidis,
Nombre de réponses : 1

Hi all, 

[INTRO]
Freie Universität Berlin decided in April 2025 to use Moodle as next LMS (starting in autum this year). Until now and for about 20 years before Blackboard LMS was used. As we used to program almost exclusively in Java and we already migrated before our internal services to LTI 1.3 (Blackboard became in 2023 a cloud service) and with no Moodle development experience at all, we started using Moodle webservices from Java and indeed kept all our business layers "as-is". 

The main focus was on to just to keep the existing integrations with our SIS system (CM) and our LTI tools for both, Blackboard and Moodle.  At this point, we are still not yet very much "into Moodle", which will change in the future.  

[INTRO]

- Within this effort, we created a small "glueing" library (we  wanted to start small and checked before the existing Java example for Moodle webservices), which now consists of two layers, from top-down: Mapping our existing business API to (Moodle JSON) Java Data Objects and mapping this to Moodle Webservices. This latter layer, which maps the Data Objects / JSON from/to Moodle-Webservices, we put as open source just now: https://codeberg.org/geKa3b/moodle-webservices-java.

[IDEA]

1. Work with this Moodle Webservices JAVA library
 a) Understand structure - may be with Claude Code or other AI , issues -  NOT for PR -> might be another topic ..
 b) Document analysis and find low hanging fruits, amending test, cleanup dependencies, ..
 c) Extend the library to use another Moodle, e.g. webservice enrol_meta_add_instances: Tests, Services, Mapper, Data Objects.

 [IDEA]
 
2. Work with Moodle Open API. 

Moodle seems to have an implementation of Open API swagger REST interface.

 a) Understand mechanism, dependencies, find the pattern (includes also some routing)   ..
 b) Document analysis and try to identify how it might be applied to another Moodle webservice
 c) Define another webservice as a REST OPEN API endpoint. 

 
Best regards,
 
 Georg 

En réponse à Georg Kallidis

Re: Moodle webservices, LTI 1.3, Java

par Adnan Besic,
Hi Georg,

I’ve already developed some plugins for our university based on the Open API schema in Moodle, using the documentation: https://moodledev.io/docs/5.0/apis/subsystems/routing

I know the current routing functionality in Moodle isn’t the final solution, but we decided to use it anyway to meet our needs.

Regarding your IDEA to "2. Work with Moodle Open API," I’d be happy to share my experience and collaborate.

We could work together on a simple routing plugin to explore and improve the functionality further.

Best regards,

Adnan