The response from a web service request will change depending on the type of request sent. Some responses contain an array of information, others only HTTP Status codes. The example return arrays shown have been decoded from JSON for readability.
Read (GET)
Read, or GET requests, return an array of information, including any records found to match the given criteria. The response array is structured to handle paginated requests, and includes a 'list' of the records on the current page.
Example Response
A request to verify enrollment of user 200 in course 300, where the user is enrolled in the course. The call http://your-domain.com/course_enrollment.json?uid=200&nid=300 will return the following:
stdClass Object
(
[self] => http://your-domain.com/course_enrollment?uid=200&nid=300 // The current page the list value displaying information
[first] => http://your-domain.com/course_enrollment?uid=200&nid=300&page=0
[last] => http://your-domain.com/course_enrollment?uid=200&nid=300&page=0
[list] => Array
(
[0] => stdClass Object
(
[eid] => 185
[nid] => stdClass Object
(
[uri] => http://your-domain.com/node/310
[id] => 310
[resource] => node
[uuid] => 9aabcf09-58c3-4679-85b3-c5f7ddc93ac6
)
[uid] => stdClass Object
(
[uri] => http://your-domain.com/user/200
[id] => 200
[resource] => user
[uuid] => ba5bc8af-25d7-48de-bb54-87ae70ac33b5
)
[enrollmenttype] =>
[status] => 1
[created] => 1459800985
[timestamp] => 1459800985
[enroll_end] => 0
[code] =>
[user_type] =>
[data] =>
[feed_nid] =>
)
)
)
A request to verify enrollment of user 200 in course 400, where the user is not enrolled in the course. The call http://your-domain.com/course_enrollment.json?uid=200&nid=400 will return the following:
stdClass Object
(
[self] => http://your-domain.com/course_enrollment?uid=200&nid=400 // The current page the list value displaying information
[first] => http://your-domain.com/course_enrollment?uid=200&nid=400&page=0
[last] => http://your-domain.com/course_enrollment?uid=200&nid=400&page=0
[list] => []
)
A request for all enrollments in the system, http://your-domain.com/course_enrollment.json will return the following:
stdClass Object
(
[self] => http://your-domain.com/course_enrollment
[first] => http://your-domain.com/course_enrollment?page=0
[last] => http://your-domain.com/course_enrollment?page=3
[next] => http://your-domain.com/course_enrollment?page=1
[list] => Array
(
[0] => stdClass Object{ ... }
[1] => stdClass Object{ ... }
[2] => stdClass Object{ ... }
...
)
)
A request to review the second page of results from all enrollments in the system, http://your-domain.com/course_enrollment.json?page=1 will return the following:
stdClass Object
(
[self] => http://your-domain.com/course_enrollment?page=1
[first] => http://your-domain.com/course_enrollment?page=0
[last] => http://your-domain.com/course_enrollment?page=3
[prev] => http://your-domain.com/course_enrollment?page=0
[next] => http://your-domain.com/course_enrollment?page=2
[list] => Array
(
[0] => stdClass Object{ ... }
[1] => stdClass Object{ ... }
[2] => stdClass Object{ ... }
...
)
)
Create (POST)
Creation requests return an array of basic information about the new created entity. The HTTP status code returned will be 201 CREATED for successful requests.
Example Responses
A user creation call.
stdClass Object
(
[uri] => http://your-domain.com/user/200
[id] => 200
[resource] => user
[uuid] => 2fd044c5-ff4a-4bfe-8472-9b9b56eb0fc6
)
Update (PUT)
Update requests do not return any data, other than the HTTP headers, which can be used to verify success. A status code of 200, indicates a successful call.
Example Request
<?php
$curl = curl_init('http://your-domain.com/restws/session/token');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "restws_webservice:webservice_password"); //Your credentials goes here
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
$token = curl_exec($curl);
// Token looks like "q71OBx05wtECfjA0KmXf6wiktewrywNhkMZv-OcfyOA%"
// Only the fields being updated need to be sent
$course = array(
'title' => 'My Title Update',
);
$curl = curl_init('http://your-domain.com/node/25'); // Note the 25, which is the nid of the course we are updating
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "restws_webservice:webservice_password"); //Your credentials goes here
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($course));
curl_setopt($curl, CURLOPT_HTTPHEADER, array("X-CSRF-Token: $token", "Content-Type: application/json"));
$response = curl_exec($curl);
print 'Updating...';
$json = curl_exec($curl);
$cinfo = curl_getinfo($curl);
$response = json_decode($json);
if ($cinfo['http_code'] == 200 && empty($response)) {
print 'The entity has been updated';
}
Delete (DELETE)
Similar to Updates, Delete requests do not return any data, other than the HTTP headers, which can be used to verify success. A status code of 200, indicates a successful deletion call.
Example Request
$curl = curl_init("http://your-domain.com/course_credit_awarded/214"); // Note the 214, which is the entity id of the course_credit_awarded record associated to the user & course
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($curl, CURLOPT_HTTPHEADER, array("X-CSRF-Token: $token", "Content-Type: application/json"));
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "restws_webservice:webservice_password"); //Your credentials goes here
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
print 'Deleting...';
$json = curl_exec($curl);
$cinfo = curl_getinfo($curl);
$response = json_decode($json);
if($cinfo['http_code'] == 200 && empty($response)){
print 'The entity has been deleted'.
}