1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.rest.server">
<title>Zend_Rest_Server</title>
<sect2 id="zend.rest.server.introduction">
<title>Introduction</title>
<para>
Zend_Rest_Server est prévu comme un serveur supportant l'ensemble des
fonctionnalités d'un serveur REST.
</para>
</sect2>
<sect2 id="zend.rest.server.usage">
<title>Utilisation d'un serveur REST</title>
<example id="zend.rest.server.usage.example-1">
<title>Utilisation basique Zend_Rest_Server - Avec des classes</title>
<programlisting language="php"><![CDATA[
$server = new Zend_Rest_Server();
$server->setClass('Mon_Service_Classe');
$server->handle();
]]></programlisting>
</example>
<example id="zend.rest.server.usage.example-2">
<title>Utilisation basique Zend_Rest_Server - Avec des fonctions</title>
<programlisting language="php"><![CDATA[
/**
* 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();
]]></programlisting>
</example>
</sect2>
<sect2 id="zend.rest.server.args">
<title>Appelé un service Zend_Rest_Server</title>
<para>
Pour appeler un service <classname>Zend_Rest_Server</classname>, vous devez
fournir un argument de <code>method</code> 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").
</para>
<note>
<title>Index numérique</title>
<para>Les arguments numériques utilisent 1 comme point de départ.</para>
</note>
<para>
Pour appeler le <code>ditBonjour</code> de l'exemple ci-dessus, vous pouvez
employer soit :
</para>
<para><code>?method=ditBonjour&qui=Davey&quand=journée</code></para>
<para>or:</para>
<para><code>?method=ditBonjour&arg1=Davey&arg2=journée</code></para>
</sect2>
<sect2 id="zend.rest.server.customstatus">
<title>Envoyer un statut personnalisé</title>
<para>
En envoyant des valeurs, pour ajouter un statut personnalisé, vous pouvez envoyer
un tableau avec une clé <code>status</code>.
</para>
<example id="zend.rest.server.customstatus.example-1">
<title>Renvoyer un statut personnalisé</title>
<programlisting language="php"><![CDATA[
/**
* 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();
]]></programlisting>
</example>
</sect2>
<sect2 id="zend.rest.server.customxml">
<title>Renvoyer une réponse XML personnalisée</title>
<para>
Si vous voulez retourner du <acronym>XML</acronym> personnalisé, retournez simplement un objet
<code>DOMDocument</code>, <code>DOMElement</code> ou
<code>SimpleXMLElement</code>.
</para>
<example id="zend.rest.server.customxml.example-1">
<title>Renvoyer une réponse XML personnalisée</title>
<programlisting language="php"><![CDATA[
/**
* 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>
<constant>200</constant>
</mysite>';
$xml = simplexml_load_string($xml);
return $xml;
}
$server = new Zend_Rest_Server();
$server->addFunction('ditBonjour');
$server->handle();
]]></programlisting>
</example>
<para>La réponse du service sera retournée sans modification au client.</para>
</sect2>
</sect1>
|