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 154 155 156 157 158 159 160 161 162
|
<?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>Einführung</title>
<para>
<classname>Zend_Rest_Server</classname> ist ein komplett-feature REST Server.
</para>
</sect2>
<sect2 id="zend.rest.server.usage">
<title>Verwenden des REST Servers</title>
<example id="zend.rest.server.usage.example-1">
<title>Grundsätzliche Verwendung von Zend_Rest_Server: Klassen</title>
<programlisting language="php"><![CDATA[
$server = new Zend_Rest_Server();
$server->setClass('My_Service_Class');
$server->handle();
]]></programlisting>
</example>
<example id="zend.rest.server.usage.example-2">
<title>Grundsätzliche Verwendung von Zend_Rest_Server: Funktionen</title>
<programlisting language="php"><![CDATA[
/**
* Sag Hallo
*
* @param string $who
* @param string $when
* @return string
*/
function sayHello($who, $when)
{
return "Hallo $who, Gut $when";
}
$server = new Zend_Rest_Server();
$server->addFunction('sayHello');
$server->handle();
]]></programlisting>
</example>
</sect2>
<sect2 id="zend.rest.server.args">
<title>Aufruf eines Zend_Rest_Server Services</title>
<para>
Um ein <classname>Zend_Rest_Server</classname> Service aufzurufen, muß ein
<constant>GET</constant>/POST <code>method</code> Argument mit einem Wert angegeben
werden, welcher der Methode entspricht, die aufgerufen werden soll. Es können
anschließend beliebig viele Argumente folgen, die entweder den Namen des Arguments
verwenden (z.B. "wer"), oder man kann <code>arg</code> verwenden, gefolgt von der
nummerischen Position des Arguments (z.B. "arg1").
</para>
<note>
<title>Nummerischer Index</title>
<para>
Nummerische Argumente verwenden einen 1-basierenden Index.
</para>
</note>
<para>
Um <code>sayHello</code> vom obigen Beispiel aufzurufen, kann:
</para>
<para>
<code>?method=sayHello&who=Davey&when=Day</code>
</para>
<para>
verwendet werden, oder:
</para>
<para>
<code>?method=sayHello&arg1=Davey&arg2=Day</code>
</para>
</sect2>
<sect2 id="zend.rest.server.customstatus">
<title>Senden eines eigenen Status</title>
<para>
Wenn Werte zurückgegeben werden, kann man, um einen eigenen Status zurückzugeben, ein
Array mit einem <code>status</code> Schlüssel zurückgeben.
</para>
<example id="zend.rest.server.customstatus.example-1">
<title>Einen eigenen Status zurückgeben</title>
<programlisting language="php"><![CDATA[
/**
* Sag Hallo
*
* @param string $who
* @param string $when
* @return array
*/
function sayHello($who, $when)
{
return array('msg' => 'Ein Fehler ist aufgetreten', 'status' => false);
}
$server = new Zend_Rest_Server();
$server->addFunction('sayHello');
$server->handle();
]]></programlisting>
</example>
</sect2>
<sect2 id="zend.rest.server.customxml">
<title>Eigene XML Antworten zurückgeben</title>
<para>
Wenn man eigenes <acronym>XML</acronym> zurückgeben will, kann einfach ein
<code>DOMDocument</code>, <code>DOMElement</code> oder <code>SimpleXMLElement</code>
Objekt zurückgegeben werden.
</para>
<example id="zend.rest.server.customxml.example-1">
<title>Eigenes XML zurückgeben</title>
<programlisting language="php"><![CDATA[
/**
* Sag Hallo
*
* @param string $who
* @param string $when
* @return SimpleXMLElement
*/
function sayHello($who, $when)
{
$xml ='<?xml version="1.0" encoding="ISO-8859-1"?>
<mysite>
<value>Hallo $who! Hoffentlich hast Du einen guten $when</value>
<code>200</code>
</mysite>';
$xml = simplexml_load_string($xml);
return $xml;
}
$server = new Zend_Rest_Server();
$server->addFunction('sayHello');
$server->handle();
]]></programlisting>
</example>
<para>
Die Antwort des Services wird ohne Modifizierungen zum Client zurückgegeben.
</para>
</sect2>
</sect1>
|