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.
Return Attributes
self: The current page being viewed
first: The first page in the data set
last: The last page in the data set. If this matches the value in first, the data set has been returned in full in the list option.
next: The next page in the data set, following the current page, self
prev: The previous page in the data set, preceding the current page, self
list: The data range of the current self request page
Example Responses
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:
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.
Return Attributes
uri: The web URI
id: The entity id
resource: The entity type
uuid: The unique universal id
Example Response
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.
Return Attributes
None
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.
Return Attributes
None
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'. }