weekly release 3.10.1+
[moodle.git] / webservice / upgrade.txt
1 This files describes API changes in /webservice/*
2 information provided here is intended especially for developers.
4 This information is intended for authors of webservices, not people writing webservice clients.
6 === 3.10 ===
8 * The class externallib_advanced_testcase, used in unit tests, has a new function called "configure_filters" to easily configure filters for external functions testing.
10 === 3.8 ===
12 * Ajax calls can now specify a cache key. This allows for better caching capabilities on servers. If a cache key
13   is passed and the web service call does not require the user to be logged in we will attempt to use GET for the
14   request. This allows for things like proxy caching on URLs. The cache key must be changed if we do not want to
15   retrieve what has been cached and want to perform the request again.
16 * External function core_webservice_external::get_site_info() now returns the user private access key "userprivateaccesskey".
17   This key could be used for fetching files via the tokenpluginfile.php script instead webservice/pluginfile.php to avoid
18   multiple GET requests that include the WS token as a visible parameter.
19 * External function core_webservice_external::get_site_info() now returns a new field "userissiteadmin" indicating if
20   the current user is a site administrator.
22 === 3.7 ===
24 * External function core_webservice_external::get_site_info() now returns the current site theme (for the user).
26 === 3.4 ===
28 * External function core_webservice_external::get_site_info() now returns the calendar type used in the site and
29   by the user in the sitecalendartype and usercalendartype fields.
30 * Implementations of forms for test clients now must follow naming schema: WSFUNCTIONNAME_testclient_form
31   The old naming schema WSFUNCTIONNAME_form caused conflicts with existing classes.
32   New class webservice_test_client_base_form can be used as a base class for such forms.
34 === 3.2 ===
36 * webservice->get_external_functions now returns the external function list ordered by name ASC.
37 * The filearea optional parameter has been removed from webservice/upload.php.
38   Since Moodle 3.1 all the uploads go to the draft area.
39 * external_format_text() function: component, filearea and itemid are now optional parameters.
40   In some contexts those parameteres are not necessary because is not required to do a file rewrite via
41   file_rewrite_pluginfile_urls.
42 * External function get_site_info now returns the site course ID. This new field is marked as VALUE_OPTIONAL for backwards compatibility.
43 * A new field "privatetoken" has been added to the "external_tokens" table.
44   This private token must be safely stored (or not stored at all) by the client because it will be used in places where a request
45   must be double-checked.
46   This token should not be passed via GET paramaters and it must be transmitted only via https.
47   This token is generated only in login/token.php after the user credential has been confirmed. It can't be generated by admins.
49 === 3.1 ===
51 * The xmlrpc backend has changed, Zend_XmlRpc has been dropped and there might be slight differences in
52   responses. Fault strings that were generated by Zend_XmlRpc_XXX_Exception exceptions (i.e. 'Method
53   "[methodname]" does not exist') are no longer used which may display a different error message depending
54   on the string returned by the getMessage() method of the thrown exception.
55 * The xmlrpc server is no longer enabled when the Mobile service is activated.
56 * Support for the AMF protocol has been dropped completely.
57 * As Zend Framework has been removed, the webservice_zend_* classes have also been removed.
58 * Zend_SOAP has been dropped. The native PHP SoapClient and SoapServer classes are now being used instead. WSDL is now
59   generated by the new class webservice_soap_wsdl. For fault strings, a different error message might be shown depending
60   on the string returned by the getMessage() method of the thrown exception.
61 * With Zend_SOAP dropped, moodle_zend_soap_server is now also deprecated.
62 * As mentioned in the 2.9 notes, deprecated web service functions have now been removed.
63 * Since our new XML-RPC server implementation does not support introspection, it is critical that all clients send
64   parameters in the correct order.
65 * File uploading to the user private file area via the webservice/upload.php script is not supported anymore.
66   Only uploads to the draft area are allowed.
68 === 3.0 ===
70 * WS protocols webservice/myprotocol:use capabilities were defined with a high riskbitmask value
71   when the fact that a user has that capability does not imply any risk, but other capabilities
72   that the user may have do. If your ws protocol does not imply and risk by itself, you can remove the
73   riskbitmask from your $capabilities array in webservice/myprotocol/db/access.php
74 * New function for formatting external strings: external_format_strings, it should be used as a replacement of format_string in
75   external functions.
76   All the occurrences of format_strings have been replaced with this new function.
78 === 2.9 ===
80 * The deprecated functions can not be added to services anymore and
81   a debugging message for developers is triggered when viewing an existing
82   services using them. It is recommended to replace calls to the deprecated
83   functions for calls to the proposed replacements. If you are using a moodle
84   mobile app fork, it is recommended to update your customisations on top of
85   the latest moodle mobile app version.
87   The web services functions that will be finally deprecated in the next
88   moodle version are:
89     - moodle_course_create_courses
90     - moodle_course_get_courses
91     - moodle_enrol_get_enrolled_users
92     - moodle_enrol_get_users_courses
93     - moodle_enrol_manual_enrol_users
94     - moodle_file_get_files
95     - moodle_file_upload
96     - moodle_group_add_groupmembers
97     - moodle_group_create_groups
98     - moodle_group_delete_groupmembers
99     - moodle_group_delete_groups
100     - moodle_group_get_course_groups
101     - moodle_group_get_groupmembers
102     - moodle_group_get_groups
103     - moodle_message_send_instantmessages
104     - moodle_notes_create_notes
105     - moodle_role_assign
106     - moodle_role_unassign
107     - moodle_user_create_users
108     - moodle_user_delete_users
109     - moodle_user_get_course_participants_by_id
110     - moodle_user_get_users_by_courseid
111     - moodle_user_get_users_by_id
112     - moodle_user_update_users
113     - core_grade_get_definitions
114     - core_user_get_users_by_id
115     - moodle_webservice_get_siteinfo
117 * External function core_webservice_external::get_site_info now returns additional optional fields:
118    - advancedfeatures: Array listing Moodle advanced features and if enabled or not.
119    - usercanmanageownfiles: Whether the my files option is disabled.
120    - userquota: User storage quota.
121    - usermaxuploadfilesize: Files upload size limit.
124 === 2.7 ===
126 * All webservice server.php and simpleserver.php scripts must define('WS_SERVER', true)
127   before including config.php file.
130 === 2.6 ===
132 * webservice/upload.php
133 Accepts 2 new post parameters to allow uploading of files to a users draft area.
134  - filearea should be either 'private' (default) or 'draft'
135  - itemid unused if the filearea is 'private', for 'draft' it can be the id of a previously
136    created draft area - or 0 which will generate a new draft area for the files.