|
|
(182 intermediate revisions by 6 users not shown) |
Line 1: |
Line 1: |
| {{Moodle_2.0}}
| | #REDIRECT [[Adding_a_web_service_to_a_plugin]] |
| First you need to read and execute the administration manual [[Setting_up_a_web_service]]. Now you should be more familiar about how web services are set into Moodle.
| |
| | |
| == Preparation ==
| |
| Identify:
| |
| * core function(s) you need to call (or/and write)
| |
| * the param types that new to be send to your web service function
| |
| * the returned value types
| |
| * the user capabilities (it most of the time the ones logically required by the core functions)
| |
| | |
| == declare your web service functions/services ==
| |
| In the db/services.php of each component, is a structure something like this to describe the web service functions, and optionally, any larger services built up of several functions.
| |
| | |
| <code php>
| |
| $functions = array(
| |
| 'moodle_user_create_users' => array( //web service name (unique in all Moodle)
| |
| 'classname' => 'moodle_user_external', //class containing the function implementation
| |
| 'methodname' => 'create_users', //name of the function into the class
| |
| 'classpath' => 'user/externallib.php', //file containing the class (only used for core external function, not needed if your file is 'component/externallib.php'),
| |
| 'description' => 'create some users',
| |
| 'type' => 'write'
| |
| )
| |
| );
| |
| | |
| $services = array(
| |
| 'servicename' => array(
| |
| 'functions' => array ('functionname', 'secondfunctionname'), //web service function name
| |
| 'requiredcapability' => 'some/capability:specified',
| |
| 'restrictedusers' = >1,
| |
| 'enabled'=>0, //used only when installing the services
| |
| )
| |
| );
| |
| </code>
| |
| | |
| The function name is arbitrary, but it must be globally unique so we highly recommend using the component name as prefix (and "moodle" for core functions).
| |
| | |
| The actual param description and description of returned values can be obtained from the same class by static method calls by adding '_parameters' and '_returns' to the methodname value.
| |
| | |
| == declare your web service ==
| |
| Even for security purpose, you should avoid to define a service In some case you will want to force group of web service.
| |
| == define your external functions ==
| |
| == define your external function description ==
| |
| == test your web service function with default Moodle test client ==
| |
| == create your own client ==
| |
| | |
| ==See also==
| |
| * [[Web services]]
| |
| * [[External services security]]
| |
| * [[External services description]]
| |
| * [[Setting_up_a_web_service]]
| |
| | |
| [[Category:Web Services]]
| |