What it does, exactly?
MoodleRest allow you to easily make GET or POST requests to query or update information from many webservices available on Moodle.
"Moodle is a learning platform designed to provide educators, administrators and learners with a single robust, secure and integrated system to create personalised learning environments".
This lib can return information from Moodle webservices in one of these formats:
- array
- json
- xml
The GitHub project page
https://github.com/llagerlof/MoodleRest
This dev.to article covers the basics. Many more examples and other features on project page.
Requirements
Ensure you already have access to a Moodle webservice. To use this class you will need a token (generated by Moodle admin) with the necessary capabilities for the services you want to access.
To the code
You have 2 options to add this lib to your project:
Option One
Use Composer to include it in your project.
- Inside your project directory create or modify the file
composer.json
:
{ "require": { "llagerlof/moodlerest": "2.3.0" } }
- In the same directory of the
composer.json
, run:
$ composer install
- In your project, load the lib using composer autoloader:
<?php require_once dirname(__FILE__) . '/vendor/autoload.php';
Option Two
Just include the MoodleRest.php
class directly in your script.
require_once dirname(__FILE__) . '/MoodleRest.php';
The MoodleRest
constructor
You can pass 2 parameters:
- A full url path to the Moodle webserver
- The token generated by Moodle admin.
Example:
$MoodleRest = new MoodleRest( 'http://127.0.0.1/moodle/webservice/rest/server.php', '8f12e614dae30735260a045313caa400' );
The method request()
This method needs at least 2 parameters:
- The webservice functiona name (string).
- The parameters (array) passed to the webservice. The MoodleRest will internally convert this array to a query string. If you need to learn how to build an array compatible to each webservice's function I have you covered!
Query example (GET)
Query 2 Moodle groups with IDs 1 and 2, passing the server URL and token in constructor using the request
method.
$MoodleRest = new MoodleRest( 'http://127.0.0.1/moodle/webservice/rest/server.php', '8f12e614dae30735260a045313caa400' ); $groups = $MoodleRest->request( 'core_group_get_groups', array('groupids' => array(1,2)) ); print_r($groups);
Inserting data example (POST)
Set the server and token in constructor and make a request to create a group on Moodle.
$MoodleRest = new MoodleRest( 'http://127.0.0.1/moodle/webservice/rest/server.php', '8f12e614dae30735260a045313caa400' ); $new_group = array( 'groups' => array( array( 'courseid' => 2, 'name' => 'Group name', 'description' => 'Group description' ) ) ); /* The default request's METHOD is to make a GET request, but you can change it to POST. This is recommended when inserting and updating data. */ $return = $MoodleRest->request( 'core_group_create_groups', $new_group, MoodleRest::METHOD_POST ); // If you want the requested URL echo $MoodleRest->getUrl();
That's it! Quick and easy.
More features and examples on project page.
Top comments (0)