Note:

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

Web service API functions

From MoodleDocs

Moodle 2.0


Please add feedback on the talk page.

Draft

Color meaning
Implemented
Must be implemented
Suggested


Web service protocols

Name Moodle Ver. Description Issue
AMF 2.0 Adobe protocol to communicate with Flash/Flex apps
REST (returning XML) 2.0 XML data accessed through a restful API
REST (returning JSON) 2.X Would be very useful for client-side JavaScript MDL-29242
JSON 2.2 JSON server receives a JSON encoded params and return JSON encoded values. MDL-21341
SOAP 2.0 Very important for interoperating with Java and .Net applications. There was a partial implementation JAVA/.Net in Moodle 2.0, but it does not work for anything but the most trivial functions. It is fully working with PHP clients. MDL-20804, MDL-28988, MDL-28989
XMLRPC 2.0 XML remote-procedure call.

Web service functions

Naming convention (DRAFT NEED APPROVAL)

Tracker issue: MDL-29106

It was suggested during a chat meeting (18/08/11) that we could keep all the current web service names. However if the current web service name does not respect the naming convention we will create a new function. The "deprecated function" will have their description attribut indicating DEPRECATED. Both of the deprecated function and new function will be pointing to the same externallib.php function.

Naming convention (based on Frankenstyle):

Component Draft naming convention Current naming Annotation
module mod_forum_create_posts moodle_mod_forum_create_posts()
block block_calendar_create_events moodle_calendar_create_events()
enrolment plugin enrol_manual_enrol_users moodle_enrol_manual_enrol_users()
local plugin local_hub_get_courses local_hub_get_courses
core folder (/user/externallib.php) core_user_create_users() moodle_user_create_users() core_foldername_functionname
core folder (/course/externallib.php) core_course_create_courses() moodle_course_create_courses()
core folder (/course/externallib.php) core_course_create_categories() moodle_category_create_categories()
core folder (/enrol/externallib.php) core_enrol_role_assign() moodle_role_assign()
core folder (/enrol/externallib.php) core_enrol_get_enrolled_users() moodle_enrol_get_enrolled_users()

I think the core ones should be like

  • core_course_create
  • core_user_create
  • core_enrol_role_assign

The second word should come from the list in get_core_subsystems in moodlelib.php--Tim Hunt 20:58, 25 August 2011 (WST)

Should it be block_calendar_ ? --Jerome mouneyrac 11:11, 1 September 2011 (Perth Time)

Should it be core_event_ ? (core_event_create_event()) --Jerome mouneyrac 11:13, 1 September 2011 (Perth Time)

API Roadmap (Needs update once naming convention is final)

New Naming Convention 2.0/2.1 Name Moodle Ver. Description Issue
User
core_create_users() moodle_user_create_users() 2.0 Create users - admin function
core_delete_users() moodle_user_delete_users() 2.0 Delete users - admin function
core_update_users() moodle_user_update_users() 2.0 Update users
core_get_users_by_id() moodle_user_get_users_by_id() 2.0 Get users by id
core_get_course_participants_by_id() moodle_user_get_course_participants_by_id() 2.1 Get course user profiles by id
core_get_users_by_courseid() moodle_user_get_users_by_courseid() 2.1 Get enrolled users by course id
core_get_users() 2.2 Get users from a specifed key/value MDL-27985
core_get_completed_users_per_course() 2.2 Get users who completed the course MDL-28320
core_get_completed_courses_per_user() 2.2 Get courses that a user completed MDL-28319
Course
core_get_courses() moodle_course_get_courses() 2.0 Return course details
core_create_courses() moodle_course_create_courses() 2.0 Create new courses
core_update_courses() 2.2 including moving categories
core_delete_courses() 2.2 MDL-13130
core_get_course_contents() 2.2 including sections, activities etc MDL-28646
core_get_recent_activity() 2.2 also works for site course MDL-13135
Group
core_create_groups() moodle_group_create_groups() 2.0 Creates new groups
core_get_groups() moodle_group_get_groups() 2.0 Returns group details.
core_get_course_groups() moodle_group_get_course_groups() 2.0 Returns all groups in specified course
core_delete_groups() moodle_group_delete_groups() 2.0 Deletes all specified groups
core_get_groupmembers() moodle_group_get_groupmembers() 2.0 Returns group members
core_add_groupmembers() moodle_group_add_groupmembers() 2.0 Adds group members
core_delete_groupmembers() moodle_group_delete_groupmembers() 2.0 Deletes group members
Role
core_assign_role() moodle_role_assign() 2.0 Manual role assignments
core_unassign_role() moodle_role_unassign() 2.0 Manual role unassignments
Enrol
core_get_enrolled_users() moodle_enrol_get_enrolled_users() 2.0 get some minimal information about the users enrolled in a course (DEPRECATED)
core_get_users_courses() moodle_enrol_get_users_courses() 2.0 get list of course ids that a user is enrolled in (if you are allowed to see that)
Enrol/manual
enrol_manual_create() moodle_enrol_manual_enrol_users() 2.0 Manual enrol users
enrol_manual_delete() 2.2 Manual unenrol users
enrol_ manual_update() 2.2
Enrol/cohort
enrol_cohort_create() 2.2
enrol_cohort_delete() 2.2
Enrol/self
enrol_self_create() 2.2
enrol_self_delete() 2.2
Webservice
core_get_siteinfo() moodle_webservice_get_siteinfo() 2.1 Return some site info / user info / list web service functions
Message
core_send_instantmessages() moodle_message_send_instantmessages() 2.1 Send instant messages
core_get_instantmessages() 2.2 params for unread etc
core_create_contacts() 2.2
core_delete_contacts() 2.2
Notes
core_create_notes() moodle_notes_create_notes() 2.1 Create notes
core_delete_notes() 2.2
Events
core_trigger_event() 2.2 triggers an event
Calendar
core_create_calendar_events() 2.2
core_update_calendar_events() 2.2
core_delete_calendar_events() 2.2
Private file
core_get_files() moodle_file_get_files() 2.0 browse moodle files
core_upload() moodle_file_upload() 2.0 upload a file to moodle (DEPRECATED)
core_create_files() 2.2 can also do folders via a flag
core_update_files() 2.2
core_delete_files() 2.2
Category
core_create_categories() 2.2
core_delete_categories() 2.2
core_update_categories() 2.2
core_get_categories() 2.2
Grade
core_get_grades() 2.2 for user, course, activity etc
core_get_scales() 2.2
core_get_outcomes() 2.2
core_update_grades() 2.2 including feedback
core_create_grades() 2.2
Ratings
core_get_ratings() 2.2
core_create_ratings() 2.2
core_update_ratings() 2.2
core_delete_ratings() 2.2
Comments
core_get_comments() 2.2
core_create_comments() 2.2
core_update_comments() 2.2
core_delete_comments() 2.2
Forum
mod_forum_get_forums() 2.2
mod_forum_create_forums() 2.2
mod_forum_update_forums() 2.2
mod_forum_delete_forums() 2.2
mod_forum_get_discussions() 2.2
mod_forum_create_discussions() 2.2
mod_forum_update_discussions() 2.2
mod_forum_delete_discussions() 2.2
mod_forum_get_posts() 2.2
mod_forum_create_posts() 2.2
mod_forum_update_posts() 2.2
mod_forum_delete_posts() 2.2