Simple REST Client in PHP

A while back I created a Drupal module to act as a customized and extensible REST client. Since then I have used the module as a basis for other customized REST client code. I thought it might be a good idea to keep a copy of the dumbed down very basic code (not the Drupal module) in this post as a reference for myself and others to build off of in the future.

Any improvements or suggestions are welcome. However, please keep in mind that this is intended to be a scaffold on which to build customizations.

<?php

$url = 'https://www.someRestAPI.com';
$method = 'POST';

// Set the headers. In this case its for JSON
$headers = array(
'Accept: application/json',
'Content-Type: application/json',
);

$data_array = SomeDataRetrievingClass::GetData($param) ;

// Convert array to JSON
$data = json_encode($data_array);

//  PHP cURL Documentation:  http://php.net/manual/en/book.curl.php
//  See list of cURL options to set:  http://php.net/manual/en/function.curl-setopt.php

$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, FALSE);

switch($method){

case 'GET':
break;

case 'POST':
curl_setopt($handle, CURLOPT_POST, TRUE);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
break;

case 'PUT':
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
break;

case 'DELETE':
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'DELETE');
break;
}

$response = curl_exec($handle);
$code = curl_getinfo($handle, CURLINFO_HTTP_CODE);

?>

Leave a Reply

Your email address will not be published.