Developing legacy web services for Totara

We do not recommend using legacy web services for new projects. While we do not intend to remove them in the medium term, all new services will be built for the external GraphQL API, which has a number of advantages over the legacy system.

Web services can be extended by creating a file called externallib.php in a plugin's root code folder. The file should require lib/externallib.php then create a class that extends the external_api class.

See existing examples in the codebase for details.