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_user_create_users() moodle_user_create_users() 2.0 Create users - admin function
core_user_delete_users() moodle_user_delete_users() 2.0 Delete users - admin function
core_user_update_users() moodle_user_update_users() 2.0 Update users
core_user_get_users_by_id() moodle_user_get_users_by_id() 2.0 Get users by id
core_user_get_course_participants_by_id() moodle_user_get_course_participants_by_id() 2.1 Get course user profiles by id
core_user_get_users_by_courseid() moodle_user_get_users_by_courseid() 2.1 Get enrolled users by course id
core_user_get_users() 2.2 Get users from a specifed key/value MDL-27985
core_user_get_completed_users_per_course() 2.2 Get users who completed the course MDL-28320
core_user_get_completed_courses_per_user() 2.2 Get courses that a user completed MDL-28319
Course
core_course_get_courses() moodle_course_get_courses() 2.0 Return course details
core_course_create_courses() moodle_course_create_courses() 2.0 Create new courses
core_course_update_courses() 2.2 including moving categories
core_course_delete_courses() 2.2 MDL-13130
core_course_get_course_contents() 2.2 including sections, activities etc MDL-28646
core_course_get_recent_activity() 2.2 also works for site course MDL-13135
Group
core_group_create_groups() moodle_group_create_groups() 2.0 Creates new groups
core_group_get_groups() moodle_group_get_groups() 2.0 Returns group details.
core_group_get_course_groups() moodle_group_get_course_groups() 2.0 Returns all groups in specified course
core_group_delete_groups() moodle_group_delete_groups() 2.0 Deletes all specified groups
core_group_get_groupmembers() moodle_group_get_groupmembers() 2.0 Returns group members
core_group_add_groupmembers() moodle_group_add_groupmembers() 2.0 Adds group members
core_group_delete_groupmembers() moodle_group_delete_groupmembers() 2.0 Deletes group members
Role
core_role_assign() moodle_role_assign() 2.0 Manual role assignments
core_role_unassign() moodle_role_unassign() 2.0 Manual role unassignments
Enrol
core_enrol_get_enrolled_users() moodle_enrol_get_enrolled_users() 2.0 get some minimal information about the users enrolled in a course (DEPRECATED)
core_enrol_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_enrol_users() moodle_enrol_manual_enrol_users() 2.0 Manual enrol users
enrol_manual_unenrol_users() 2.2 Manual unenrol users
enrol_ manual_update_enrolment() 2.2
Enrol/cohort
enrol_cohort_enrol_users() 2.2
enrol_cohort_unenrol_users() 2.2
Enrol/self
enrol_self_enrol_users() 2.2
enrol_self_unenrol_users() 2.2
Webservice
core_webservice_get_siteinfo() moodle_webservice_get_siteinfo() 2.1 Return some site info / user info / list web service functions
Message
core_message_send_instantmessages() moodle_message_send_instantmessages() 2.1 Send instant messages
core_message_get_instantmessages() 2.2 params for unread etc
core_message_create_contacts() 2.2
core_message_delete_contacts() 2.2
Notes
core_notes_create_notes() moodle_notes_create_notes() 2.1 Create notes
core_notes_delete_notes() 2.2
Events
core_event_create_event() 2.2 triggers an event
Calendar
block_calendar_create_events() 2.2
block_calendar_update_events() 2.2
block_calendar_delete_events() 2.2
Private file
core_file_get_files() moodle_file_get_files() 2.0 browse moodle files
core_file_upload() moodle_file_upload() 2.0 upload a file to moodle (DEPRECATED)
core_file_create_files() 2.2 can also do folders via a flag
core_file_update_files() 2.2
core_file_delete_files() 2.2
Category
core_category_create_categories() 2.2
core_category_delete_categories() 2.2
core_category_update_categories() 2.2
core_category_get_categories() 2.2
Grade
core_grade_get_grades() 2.2 for user, course, activity etc
core_grade_get_scales() 2.2
core_grade_get_outcomes() 2.2
core_grade_update_grades() 2.2 including feedback
core_grade_create_grades() 2.2
Ratings
core_rating_get_ratings() 2.2
core_rating_create_ratings() 2.2
core_rating_update_ratings() 2.2
core_rating_delete_ratings() 2.2
Comments
core_comment_get_comments() 2.2
core_comment_create_comments() 2.2
core_comment_update_comments() 2.2
core_comment_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