Note:

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

Web services: Difference between revisions

From MoodleDocs
(One intermediate revision by one other user not shown)
Line 1: Line 1:
=== How it works ===
=== How it works ===
This simple example will give you an idea of how our web services infrastructure works.  
This example will give you an idea of how our web services infrastructure works.  
#The client sends a username and password to the web service login script.
#The client sends a username and password to the web service login script.
#The script returns a token for that user account.
#The script returns a token for that user account.
Line 19: Line 19:
* [[How to contribute a web service function to core]]
* [[How to contribute a web service function to core]]
* [[Adding a web service to a plugin| Adding a web service to your plugin]]
* [[Adding a web service to a plugin| Adding a web service to your plugin]]
* Code example: [https://gist.github.com/timhunt/51987ad386faca61fe013904c242e9b4 Adding a web service, with APIs] by (Tim Hunt)
* Code example: [https://gist.github.com/timhunt/51987ad386faca61fe013904c242e9b4 Adding a web service, using APIs] by (Tim Hunt)
* [[Creating a web service client | Implement a web service client]]
* [[Creating a web service client | Implement a web service client]]
* [[Web services files handling]]
* [[Web services files handling]]

Revision as of 17:47, 30 October 2020

How it works

This example will give you an idea of how our web services infrastructure works.

  1. The client sends a username and password to the web service login script.
  2. The script returns a token for that user account.
  3. The client calls a particular web service function on a protocol server including the token .
  4. The protocol server uses the token to check that the user can call the function.
  5. The protocol server calls the matching external function, located under the \component\external namespace (previously in a externallib.php file inside the relevant module).
  6. The external function checks that the current user has_capability to do this operation.
  7. The external function calls the matching Moodle core function (in lib.php usually).
  8. The core function can return a result to the external function.
  9. The external function will return a result to the protocol server.
  10. The protocol server returns the result to the client.

Developer documentation

The full API can be found on any Moodle sites under Administration block > Plugins > Web services > API Documentation.

Note: Additional services are available for uploading and downloading files which are not in the API Documentation - they are accessed in a different way. See Web services files handling

Specification and brainstorming

See also