Webservice REST récupération des données

Lorsque l’on souhaite mettre en place un webservice REST en php on se heurte souvent au problème de la récupération des données quand on utilise une méthode autre que POST ou GET.
En effet PHP dispose des superglobales $_GET et $_POST mais qu’en est-il pour PUT,HEAD ou DELETE ?

Ces données sont bien transmises , il faut simplement passer par le flux php://input pour les retrouver :

 echo file_get_contents('php://input');

va retourner les données sous forme de query string (comme les paramètres en GET). Il ne reste donc qu’a parser cette chaine pour avoir un tableau facilement exploitable :

$method = $_SERVER['REQUEST_METHOD'];
if($method == 'GET')
    $datas = $_GET;
elseif($method == 'POST')
    $datas = $_POST;
else
    parse_str(file_get_contents('php://input'),$datas);

De cette manière quelque soit le type de méthode utilisée vous serez en mesure de récupérer les données envoyées.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *