26.3. Zend_Rest_Server

26.3.1. Introduction

Zend_Rest_Server est prévu comme un serveur supportant l'ensemble des fonctionnalités d'un serveur REST.

26.3.2. Utilisation 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();
?>
			

26.3.3. Appelé un service Zend_Rest_Server

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").

[Note] 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

26.3.4. Envoyer un statut personnalisé

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();
?>
			

26.3.5. Renvoyer une réponse XML personnalisée

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.