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
(Cleaned up and added an actual listing of our web services!)
m (Protected "Web services": Developer Docs Migration ([Edit=Allow only administrators] (indefinite)))
 
(38 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{Moodle_2.0}}
{{Template:Migrated|newDocId=/docs/apis/subsystems/external/}}
 
==Introduction==
This page describes the Web Services implementation that was added to Moodle 2.0 and is being extended with every subsequent version.
 
We support multiple web service protocols (REST, SOAP, XML-RPC and AMF). If that's not enough, support for new protocols can be added easily.
 
 
== How it works ==
This simple example will give you an idea of how our web services infrastructure works.  See [[External services security]] for more details.
#The client sends a username and password to the web service protocol server script.
#The protocol server returns a session token for that user account (how this is sent depends on the protocol).
#The client calls a particular web service function including the session token.
#The protocol server uses the token to check that the web service session is still active.
#The protocol server call the matching external function, located in a externallib.php file inside the relevant module.
#The external function checks that the current user has_capability to do this operation.
#The external function calls the matching Moodle core function (in lib.php usually).
#The core function can return a result to the external function.
#The external function will return a result to the protocol server.
#The protocol server returns the result to the client.
 
==Web description format==
 
All functions that can be called via web services are declared in a db/service.php file and can be defined in an externallib.php file somewhere.  The classes we use to define these functions are explained in the [https://docs.moodle.org/en/Development:Web_services_description External Service description document].
 
==Web services functions==
 
Every Moodle sites can provide you with a page listing all function descriptions, with useful advice for any supported protocol.
 
To call this page: ''your_moodle/webservice/wsdoc.php?protocol=soap
''
 
However, here is a list of the functions available in Moodle 2.1:
 
user:
* create_users()
* delete_users()
* update_users()
* get_users_by_id()
* get_course_participants_by_id()
* get_users_by_courseid()
 
course:
* get_courses()
* create_courses()
 
group:
* create_groups()
* get_groups()
* get_course_groups()
* delete_groups()
* get_groupmembers()
* add_groupmembers()
* delete_groupmembers()
 
enrol:
* get_enrolled_users()
* get_users_courses()
* role_assign()
* role_unassign()
 
enrol/manual:
* manual_enrol_users()
 
webservice:
* get_siteinfo_parameters()
 
message:
* send_instantmessages()
 
files:
* get_files()
* upload()
 
 
 
==Authentication==
Please have a look to the [[External services security]] page
 
==See also==
* The official discussion [http://moodle.org/mod/forum/view.php?id=6971| forum is here]
* The tracker issues are here: MDL-12886 and MDL-17135
* [[External services security]]
* [[External services description]]
* [[Creating a web service and a web service function]]
* [[Creating a web service client]]
* [[Web_Services]]
 
[[Category:Web Services]]

Latest revision as of 06:13, 22 December 2022

Important:

This content of this page has been updated and migrated to the new Moodle Developer Resources. The information contained on the page should no longer be seen up-to-date.

Why not view this page on the new site and help us to migrate more content to the new site!