18 août 2010

REST_Client, pour surfer la vague

Comme le titre le laisse supposer ;-), REST_Client est un package PHP compatible PEAR qui fournit quelques classes pour interroger un serveur REST.
C'est un client HTTP, et quand on parle client HTTP en PHP, on pense directement au module cURL.
Et bien cet ensemble de classe PHP propose une interface objet orientée REST pour cURL. Cela ne constitue pas l'intérêt principal de ce package. Mais en attendant de découvrir la "killer feature" dans un prochain billet, voyons comme utiliser la classe REST_Client.

Démonstration

<?php

require_once "REST/Client.php';

$rs = new REST_Client('rest.server.com', 8080);

// GET Method
$o = $rs->get('/path/to/get')

// check network error
if ($o->isError()) die($o->error);

// check http response code
if ($o->code == 404) die('Oups, where is my page ?');

// display the content of the page
echo $o->content;

// DELETE Method
$o = $rs->delete('/path/to/delete');

// POST Method
$data = http_build_query(array('key' => 'value'));
$o = $rs->post('/path/to/post', $data)

// PUT Method
$data = '<xml>some data</xml>';
$o = $rs->put('/path/to/put', $data);

// Retrieve & print HTTP headers
echo $o->headers['x-powered-by'];
echo $o->headers['location'];

?>

Téléchargement et code source

Le code source est disponible sur GitHub : http://github.com/touv/rest_client

Ou, on peut directement l'installer avec PEAR en s'abonnant au Channel Respear :

% pear channel-discover pear.respear.net
% pear install respear/REST_Client

2 commentaires:

  1. Il ne manque pas un morceau de code dans la démonstration ?

    RépondreSupprimer
  2. oui biensur, merci pour la remarque.
    J'avais oublié de passer l'exemple au convertisseur de caractères spéciaux - http://www.stanleyshilov.com/online-tools/convert-special-characters-into-html-entities/

    RépondreSupprimer