PHP Rest CURL is a wrapper class for PHP, simplifying the typical CRUD requests to the extreme.
All the data passed to the server is encoded to JSON and decoded from JSON.
Using it is as simple as can be.
<?php
require_once('rest.inc.php');
// CALL
$result = RestCurl::get("https://api.mongolab.com/api/1/databases/my-db/collections/bookings?apiKey=0123456789abcde");
RestCurl supports the typical CRUD methods (GET, POST, PUT, DELETE) as follows:
// GET
$result = RestCurl::get($URL, array('id' => 12345678));
// POST
$result = RestCurl::post($URL, array('name' => 'RestCurl'));
// PUT
$result = RestCurl::put($URL, array('$set' => array('version' => 1)));
// DELETE
$result = RestCurl::delete($URL, array());
The second parameter is an optional key/value array.
- In GET requests its contents will be translated into query string parameters
array('id' => '12345678')
will turn the URL into<url-prefix>/?id=12345678
- If GET parameters are already present in the URL, nothing will be appended
- For the rest of methods, the contents of the second parameter will be stringified as JSON and passed as the request body.
The previous example:
$res = RestCurl::get("https://api.mongolab.com/api/1/databases/my-db/collections/bookings?apiKey=0123456789abcde");
Will assign to $res something like:
print_r($res);
Array
(
[status] => 200
[data] => Array
(
[0] => stdClass Object
(
[_id] => stdClass Object
(
[$oid] => 52476ad1e4b08781144211f3
)
[city] => Barcelona
[date] => 2014-03-10
[guest] => Jordi Moraleda
[company] => Uniclau
)
)
[header] => HTTP/1.1 200 OK
Date: Wed, 12 Mar 2014 01:17:53 GMT
Server: Apache/2.2.22 (Ubuntu)
Expires: Tue, 01 Feb 2000 08:00:00 GMT
Last-Modified: Wed, 12 Mar 2014 01:17:53 GMT
Cache-Control: no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0
Pragma: no-cache
X-Frame-Options: DENY
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Transfer-Encoding: chunked
Content-Type: application/json;charset=utf-8
)
In the array:
$res['status']
is the HTTP status code.$res['data']
is the JSON response parsed into an array$res['header']
is a string with the response headers
If you want to use methods besides GET, POST, PUT, DELETE, you can achieve that by just calling:
$result = RestCurl::exec('OPTIONS', $URL, array('foo' => 'bar'));
To get PHP Rest Curl working, you will need to install the corresponding package for your platform.
sudo apt-get install curl libcurl3 libcurl3-dev php5-curl
yum install php-common php-curl
- Just use MAMP. Everything is bundled inside.