Zend_Rest_Server est prévu comme un serveur supportant l'ensemble des fonctionnalités d'un serveur REST.
Exemple 26.6. Utilisation basique Zend_Rest_Server - Avec des classes
<?php require_once 'Zend/Rest/Server.php'; require_once 'Mon/Service/Classe.php'; $server = new Zend_Rest_Server(); $server->setClass('Mon_Service_Classe'); $server->handle(); ?>
Exemple 26.7. Utilisation basique Zend_Rest_Server - Avec des fonctions
<?php require_once 'Zend/Rest/Server.php'; /** * Dit Bonjour * * @param string $qui * @param string $quand * @return string */ function ditBonjour($qui, $quand) { return "Bonjour $qui, bonne $quand"; } $server = new Zend_Rest_Server(); $server->addFunction('ditBonjour'); $server->handle(); ?>
Pour appeler un service Zend_Rest_Server
, vous devez fournir un argument de method
GET/POST avec une valeur qui est la méthode que vous souhaitez appeler. Vous pouvez alors ajouter tout nombre d'arguments en utilisant le nom de l'argument (c.-à-d. "qui ") ou en utilisant 'arg' suivi de la position numérique de l'argument (c.-à-d. "arg1").
Index numérique | |
---|---|
Les arguments numériques utilisent 1 comme point de départ. |
Pour appeler le ditBonjour
de l'exemple ci-dessus, vous pouvez employer soit :
?method=ditBonjour&qui=Davey&quand=journée
or:
?method=ditBonjour&arg1=Davey&arg2=journée
En envoyant des valeurs, pour ajouter un statut personnalisé, vous pouvez envoyer un tableau avec une clé status
.
Exemple 26.8. Renvoyer un statut personnalisé
<?php require_once 'Zend/Rest/Server.php'; /** * Dit Bonjour * * @param string $qui * @param string $quand * @return array */ function ditBonjour($qui, $quand) { return array('msg' => "Une erreur est apparue", 'status' => false); } $server = new Zend_Rest_Server(); $server->addFunction('ditBonjour'); $server->handle(); ?>
Si vous voulez retourner du XML personnalisé, retournez simplement un objet DOMDocument
, DOMElement
ou
SimpleXMLElement
.
Exemple 26.9. Renvoyer une réponse XML personnalisée
<?php require_once 'Zend/Rest/Server.php'; /** * Dit Bonjour * * @param string $who * @param string $when * @return SimpleXMLElement */ function ditBonjour($qui, $quand) { $xml ='<?xml version="1.0" encoding="ISO-8859-1"?> <mysite> <value>Salut $qui! J\'espère que tu passes une bonne $when</value> <code>200</code> </mysite>'; $xml = simplexml_load_string($xml); return $xml; } $server = new Zend_Rest_Server(); $server->addFunction('ditBonjour'); $server->handle(); ?>
La réponse du service sera retournée sans modification au client.