Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Specification - create a public web service server

From MoodleDocs

Goal

We want a fast REST server that anybody can request.

similar to the Hub implementation

We extend the Moodle REST server and overwrite the protected function authenticate_user().

local/plugins/db/services.php

install the web service functions + the pre-build service

local/plugins/db/install.php

  • create a user (password + username could be set into the plugin admin by the admin)
  • create a role with required capabilities by the web service function
  • also set the webservice/user:rest for this role
  • assign the role to the user on system context
  • create a token for the service/user

local/plugins/server.php:authenticate_user()

Extend the Moodle rest server.

  1. ignore any token parameter
  2. load the public token
  3. call the normal parent::authenticate_user();