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: Difference between revisions

From MoodleDocs
Line 145: Line 145:
|notes
|notes
| style="background:#D4FFDF;"  | core_notes_create_notes() || style="background:#D4FFDF;"  | moodle_notes_create_notes() || style="background:#D4FFDF;"  | 2.1 || style="background:#D4FFDF;"  | Create notes ||
| style="background:#D4FFDF;"  | core_notes_create_notes() || style="background:#D4FFDF;"  | moodle_notes_create_notes() || style="background:#D4FFDF;"  | 2.1 || style="background:#D4FFDF;"  | Create notes ||
|-
|notes
| style="background:#D4FFDF;"  core_notes_delete_notes() || style="background:#D4FFDF;"  | || style="background:#D4FFDF;"  | 2.4 || style="background:#D4FFDF;"  | Delete Notes || MDL-30072
|-
|notes
| style="background:#D4FFDF;"  core_notes_get_notes() || style="background:#D4FFDF;"  | || style="background:#D4FFDF;"  | 2.4 || style="background:#D4FFDF;"  | Retrieve Notes || MDL-30072
|-
|notes
| style="background:#D4FFDF;"  core_notes_update_notes() || style="background:#D4FFDF;"  | || style="background:#D4FFDF;"  | 2.4 || style="background:#D4FFDF;"  | Update Notes || MDL-30072
|-
|-
|files
|files
Line 260: Line 269:
|user
|user
| style="background:#D4FFDF;"  | core_user_get_users() || style="background:#D4FFDF;"  | || style="background:#D4FFDF;"  | 2.5 || style="background:#D4FFDF;"  | Search users. - If you want to get multiple users for one specific field, use core_user_get_users_by_field(), it's designed for this purpose and it should be faster. || MDL-29938
| style="background:#D4FFDF;"  | core_user_get_users() || style="background:#D4FFDF;"  | || style="background:#D4FFDF;"  | 2.5 || style="background:#D4FFDF;"  | Search users. - If you want to get multiple users for one specific field, use core_user_get_users_by_field(), it's designed for this purpose and it should be faster. || MDL-29938
|-
|notes
| style="background:#D4FFDF;"  | mod_assign_get_grades() || style="background:#D4FFDF;"  | || style="background:#D4FFDF;"  | 2.4 || style="background:#D4FFDF;"  | Returns grades from the assignment || MDL-31873
|-
|-



Revision as of 05:06, 14 March 2013

Moodle 2.0


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 REST API (not restful)
REST (returning JSON) 2.2 JSON data accessed through a REST API (not restful) MDL-29242
REST (returning JSONP) 2.X Would be very useful for client-side JavaScript MDL-29913
JSON 2.X 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

We updated (regularised) the naming convention in Moodle 2.2. See MDL-29106 for those details.

All functions should be named as follows:

  • wsfunction = fullcomponent_methodname
  • fullcomponent = frankenstyle (eg core_xxxx or mod_xxx etc)
  • methodname = verb_noun(s)
  • verb = get|create|delete|update
  • noun = moodle objects, usually plural (eg posts, discussions, users, courses etc)

Core web service functions

Area Moodle 2.2 name Moodle 2.0/2.1 name Introduced in Description Issue
user core_user_create_users() moodle_user_create_users() 2.0 Create users - admin function
user core_user_delete_users() moodle_user_delete_users() 2.0 Delete users - admin function
user core_user_update_users() moodle_user_update_users() 2.0 Update users
user core_user_get_users_by_id() moodle_user_get_users_by_id() 2.0 Get users by id
user core_user_get_course_user_profiles() moodle_user_get_course_participants_by_id() 2.1 Get course user profiles by id
cohort core_cohort_create_cohorts() 2.4 Create cohorts MDL-29472
cohort core_cohort_update_cohorts() 2.4 Update cohorts MDL-29472
cohort core_cohort_delete_cohorts() 2.4 Delete cohorts MDL-29472
cohort core_cohort_get_cohorts() 2.4 Get cohorts MDL-29472
cohort core_cohort_add_cohort_members() 2.4 Add members to cohort MDL-29472
cohort core_cohort_delete_cohort_members() 2.4 Delete members from cohort MDL-29472
cohort core_cohort_get_cohort_members() 2.4 Get cohort members MDL-29472
course core_course_get_courses() moodle_course_get_courses() 2.0 Return course details
course core_course_create_courses() moodle_course_create_courses() 2.0 Create new courses
group core_group_create_groups() moodle_group_create_groups() 2.0 Creates new groups
group core_group_get_groups() moodle_group_get_groups() 2.0 Returns group details.
group core_group_get_course_groups() moodle_group_get_course_groups() 2.0 Returns all groups in specified course
group core_group_delete_groups() moodle_group_delete_groups() 2.0 Deletes all specified groups
group core_group_get_group_members() moodle_group_get_groupmembers() 2.0 Returns group members
group core_group_add_group_members() moodle_group_add_groupmembers() 2.0 Adds group members
group core_group_delete_group_members() moodle_group_delete_groupmembers() 2.0 Deletes group members
role core_role_assign_roles() moodle_role_assign() 2.0 Manual role assignments
role core_role_unassign_roles() moodle_role_unassign() 2.0 Manual role unassignments
enrol NONE moodle_enrol_get_enrolled_users() 2.0 get some minimal information about the users enrolled in a course (DEPRECATED)
enrol core_enrol_get_enrolled_users() moodle_user_get_users_by_courseid() 2.1 Get enrolled users by course id
enrol 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
webservice core_webservice_get_site_info() moodle_webservice_get_siteinfo() 2.1 Return some site info / user info / list web service functions
message core_message_send_instant_messages() moodle_message_send_instantmessages() 2.1 Send instant messages
notes core_notes_create_notes() moodle_notes_create_notes() 2.1 Create notes
notes style="background:#D4FFDF;" core_notes_delete_notes() 2.4 Delete Notes MDL-30072
notes style="background:#D4FFDF;" core_notes_get_notes() 2.4 Retrieve Notes MDL-30072
notes style="background:#D4FFDF;" core_notes_update_notes() 2.4 Update Notes MDL-30072
files core_files_get_files() moodle_file_get_files() 2.0 browse moodle files
files core_files_upload() moodle_file_upload() 2.0 upload a file to moodle (DEPRECATED)
course core_course_get_contents() 2.2 get course content (modules + web service file urls) MDL-28646
course core_course_delete_courses() 2.3 delete courses MDL-13130
course core_course_duplicate_course() 2.3 duplicate a course MDL-32233
course core_course_get_categories() 2.3 get categories MDL-32941
course core_course_update_categories() 2.3 update categories MDL-32941
course core_course_create_categories() 2.3 create categories MDL-32941
course core_course_delete_categories() 2.3 delete categories MDL-32941
group core_group_create_groupings() 2.3 create groupings MDL-32662
group core_group_update_groupings() 2.3 update groupings MDL-32662
group core_group_get_groupings() 2.3 get groupings MDL-32662
group core_group_delete_groupings() 2.3 delete groupings MDL-32662
group core_group_assign_grouping() 2.3 assign groups from groupings MDL-32662
group core_group_unassign_grouping() 2.3 unassign groups from groupings MDL-32662
group core_group_get_course_groupings() 2.3 get all groupings in specified course MDL-32662
user core_user_get_users_by_field() 2.5 Retrieve users information for a specified unique field - If you want to do a user search, use core_user_get_users() MDL-35543
enrol core_enrol_get_enrolled_users_with_capability() 2.4 For each course and capability specified, return a list of the users that are enrolled in the course and have that capability MDL-31859
course core_course_import_course() 2.4 Import course data from a course into another course. Does not include any user data. MDL-32919
message core_message_create_contacts() 2.5 Add contacts to the contact list MDL-30070
message core_message_delete_contacts() 2.5 Remove contacts from the contact list MDL-30070
message core_message_block_contacts() 2.5 Block contacts MDL-30070
message core_message_unblock_contacts() 2.5 Unblock contacts MDL-30070
message core_message_get_contacts() 2.5 Retrieve the contact list MDL-30070
message core_message_search_contacts() 2.5 Search for contacts MDL-30070
external core_get_string() 2.4 Return a translated string - similar to core get_string() call MDL-35997
external core_get_component_strings() 2.4 Return all raw strings (with {$a->xxx}) for a specific component - similar to core get_component_strings() call MDL-35997
external core_get_strings() 2.4 Return some translated strings - like several core get_string() calls MDL-35997
calendar core_calendar_delete_calendar_events() 2.5 Delete calendar events MDL-37077
calendar core_calendar_get_calendar_events() 2.5 Get calendar events MDL-37100
calendar core_calendar_create_calendar_events() 2.5 Create calendar events MDL-37101
mod_assign mod_assign_get_grades() 2.4 Returns grades from the assignment MDL-31873
mod_assign mod_assign_get_assignments() 2.4 Returns the courses and assignments for the users capability MDL-31873
mod_assign mod_assign_get_submissions 2.5 Returns the submissions for assignments MDL-31682
mod_forum mod_forum_get_forums_by_courses 2.5 Returns a list of forum instances in a provided set of courses, if no courses are provided then all the forum instances the user has access to will be returned. MDL-37247
mod_forum mod_forum_get_forum_discussions 2.5 Returns a list of forum discussions in a provided set of forums. MDL-30102
course core_course_update_courses() 2.5 Update courses. MDL-30062
user core_user_get_users() 2.5 Search users. - If you want to get multiple users for one specific field, use core_user_get_users_by_field(), it's designed for this purpose and it should be faster. MDL-29938

This is the list of the integrated core functions. To see the roadmap, see to the tracker issue in the section bellow.

API Roadmap

Tracker issue: MDL-29934

See also