Zend_Rest_Server.xml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15235 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.rest.server">
  5. <title>Zend_Rest_Server</title>
  6. <sect2 id="zend.rest.server.introduction">
  7. <title>Einführung</title>
  8. <para>
  9. Zend_Rest_Server ist ein komplett-feature REST Server.
  10. </para>
  11. </sect2>
  12. <sect2 id="zend.rest.server.usage">
  13. <title>Verwenden des REST Servers</title>
  14. <example id="zend.rest.server.usage.example-1">
  15. <title>Grundsätzliche Verwendung vom Zend_Rest_Server - Klassen</title>
  16. <programlisting role="php"><![CDATA[
  17. $server = new Zend_Rest_Server();
  18. $server->setClass('My_Service_Class');
  19. $server->handle();
  20. ]]></programlisting>
  21. </example>
  22. <example id="zend.rest.server.usage.example-2">
  23. <title>Grundsätzliche Verwendung vom Zend_Rest_Server - Funktionen</title>
  24. <programlisting role="php"><![CDATA[
  25. /**
  26. * Sag Hallo
  27. *
  28. * @param string $who
  29. * @param string $when
  30. * @return string
  31. */
  32. function sayHello($who, $when)
  33. {
  34. return "Hallo $who, Gut $when";
  35. }
  36. $server = new Zend_Rest_Server();
  37. $server->addFunction('sayHello');
  38. $server->handle();
  39. ]]></programlisting>
  40. </example>
  41. </sect2>
  42. <sect2 id="zend.rest.server.args">
  43. <title>Aufruf eines Zend_Rest_Server Services</title>
  44. <para>
  45. Um ein <classname>Zend_Rest_Server</classname> Service aufzurufen muß ein GET/POST <code>method</code> Argument
  46. mit einem Wert angegeben werden der der Methode entspricht die aufgerufen werden soll. Es können
  47. anschließend beliebig viele Argumente folgen die entweder den Namen des Arguments verwenden (z.B. "wer")
  48. oder man kann <code>arg</code> verwenden gefolgt von der nummerischen Position des Arguments
  49. (z.B. "arg1").
  50. </para>
  51. <note>
  52. <title>Nummerischer Index</title>
  53. <para>
  54. Nummerische Argumente verwenden einen 1-basierenden Index.
  55. </para>
  56. </note>
  57. <para>
  58. Um <code>sayHello</code> vom obigen Beispiel aufzurufen kann entweder:
  59. </para>
  60. <para>
  61. <code>?method=sayHello&amp;who=Davey&amp;when=Day</code>
  62. </para>
  63. <para>
  64. verwendet werden oder:
  65. </para>
  66. <para>
  67. <code>?method=sayHello&amp;arg1=Davey&amp;arg2=Day</code>
  68. </para>
  69. </sect2>
  70. <sect2 id="zend.rest.server.customstatus">
  71. <title>Senden eines eigenen Status</title>
  72. <para>
  73. Wenn Werte zurückgegeben werden, kann man, um einen eigenen Status zurückzugeben, ein Array mit einem
  74. <code>status</code> Schlüssel zurückgeben.
  75. </para>
  76. <example id="zend.rest.server.customstatus.example-1">
  77. <title>Einen eigenen Status zurückgeben</title>
  78. <programlisting><![CDATA[
  79. /**
  80. * Sag Hallo
  81. *
  82. * @param string $who
  83. * @param string $when
  84. * @return array
  85. */
  86. function sayHello($who, $when)
  87. {
  88. return array('msg' => "Ein Fehler ist aufgetreten", 'status' => false);
  89. }
  90. $server = new Zend_Rest_Server();
  91. $server->addFunction('sayHello');
  92. $server->handle();
  93. ]]></programlisting>
  94. </example>
  95. </sect2>
  96. <sect2 id="zend.rest.server.customxml">
  97. <title>Eigene XML Antworten zurückgeben</title>
  98. <para>
  99. Wenn man eigenes XML zurückgeben will, kann einfach ein <code>DOMDocument</code>,
  100. <code>DOMElement</code> oder <code>SimpleXMLElement</code> Objekt zurückgegeben werden.
  101. </para>
  102. <example id="zend.rest.server.customxml.example-1">
  103. <title>Eigenes XML zurückgeben</title>
  104. <programlisting><![CDATA[
  105. /**
  106. * Sag Hallo
  107. *
  108. * @param string $who
  109. * @param string $when
  110. * @return SimpleXMLElement
  111. */
  112. function sayHello($who, $when)
  113. {
  114. $xml ='<?xml version="1.0" encoding="ISO-8859-1"?>
  115. <mysite>
  116. <value>Hallo $who! Hoffentlich hast Du einen guten $when</value>
  117. <code>200</code>
  118. </mysite>';
  119. $xml = simplexml_load_string($xml);
  120. return $xml;
  121. }
  122. $server = new Zend_Rest_Server();
  123. $server->addFunction('sayHello');
  124. $server->handle();
  125. ]]></programlisting>
  126. </example>
  127. <para>
  128. Die Antwort des Services wird ohne Modifizierungen zum Client zurückgegeben.
  129. </para>
  130. </sect2>
  131. </sect1>
  132. <!--
  133. vim:se ts=4 sw=4 et:
  134. -->