2
0

Zend_Rest_Server.xml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  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. <classname>Zend_Rest_Server</classname> 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 von Zend_Rest_Server: Klassen</title>
  16. <programlisting language="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 von Zend_Rest_Server: Funktionen</title>
  24. <programlisting language="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
  46. <constant>GET</constant>/POST <code>method</code> Argument mit einem Wert angegeben
  47. werden, welcher der Methode entspricht, die aufgerufen werden soll. Es können
  48. anschließend beliebig viele Argumente folgen, die entweder den Namen des Arguments
  49. verwenden (z.B. "wer"), oder man kann <code>arg</code> verwenden, gefolgt von der
  50. nummerischen Position des Arguments (z.B. "arg1").
  51. </para>
  52. <note>
  53. <title>Nummerischer Index</title>
  54. <para>
  55. Nummerische Argumente verwenden einen 1-basierenden Index.
  56. </para>
  57. </note>
  58. <para>
  59. Um <code>sayHello</code> vom obigen Beispiel aufzurufen, kann:
  60. </para>
  61. <para>
  62. <code>?method=sayHello&amp;who=Davey&amp;when=Day</code>
  63. </para>
  64. <para>
  65. verwendet werden, oder:
  66. </para>
  67. <para>
  68. <code>?method=sayHello&amp;arg1=Davey&amp;arg2=Day</code>
  69. </para>
  70. </sect2>
  71. <sect2 id="zend.rest.server.customstatus">
  72. <title>Senden eines eigenen Status</title>
  73. <para>
  74. Wenn Werte zurückgegeben werden, kann man, um einen eigenen Status zurückzugeben, ein
  75. Array mit einem <code>status</code> Schlüssel zurückgeben.
  76. </para>
  77. <example id="zend.rest.server.customstatus.example-1">
  78. <title>Einen eigenen Status zurückgeben</title>
  79. <programlisting language="php"><![CDATA[
  80. /**
  81. * Sag Hallo
  82. *
  83. * @param string $who
  84. * @param string $when
  85. * @return array
  86. */
  87. function sayHello($who, $when)
  88. {
  89. return array('msg' => 'Ein Fehler ist aufgetreten', 'status' => false);
  90. }
  91. $server = new Zend_Rest_Server();
  92. $server->addFunction('sayHello');
  93. $server->handle();
  94. ]]></programlisting>
  95. </example>
  96. </sect2>
  97. <sect2 id="zend.rest.server.customxml">
  98. <title>Eigene XML Antworten zurückgeben</title>
  99. <para>
  100. Wenn man eigenes <acronym>XML</acronym> zurückgeben will, kann einfach ein
  101. <code>DOMDocument</code>, <code>DOMElement</code> oder <code>SimpleXMLElement</code>
  102. Objekt zurückgegeben werden.
  103. </para>
  104. <example id="zend.rest.server.customxml.example-1">
  105. <title>Eigenes XML zurückgeben</title>
  106. <programlisting language="php"><![CDATA[
  107. /**
  108. * Sag Hallo
  109. *
  110. * @param string $who
  111. * @param string $when
  112. * @return SimpleXMLElement
  113. */
  114. function sayHello($who, $when)
  115. {
  116. $xml ='<?xml version="1.0" encoding="ISO-8859-1"?>
  117. <mysite>
  118. <value>Hallo $who! Hoffentlich hast Du einen guten $when</value>
  119. <code>200</code>
  120. </mysite>';
  121. $xml = simplexml_load_string($xml);
  122. return $xml;
  123. }
  124. $server = new Zend_Rest_Server();
  125. $server->addFunction('sayHello');
  126. $server->handle();
  127. ]]></programlisting>
  128. </example>
  129. <para>
  130. Die Antwort des Services wird ohne Modifizierungen zum Client zurückgegeben.
  131. </para>
  132. </sect2>
  133. </sect1>