Zend_Rest_Server.xml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 15103 -->
  4. <sect1 id="zend.rest.server">
  5. <title>Zend_Rest_Server</title>
  6. <sect2 id="zend.rest.server.introduction">
  7. <title>導入</title>
  8. <para>
  9. Zend_Rest_Server は、完全に機能する REST サーバを作成するためのものです。
  10. </para>
  11. </sect2>
  12. <sect2 id="zend.rest.server.usage">
  13. <title>REST サーバの使用法</title>
  14. <example id="zend.rest.server.usage.example-1">
  15. <title>基本的な Zend_Rest_Server の使用法 - クラス</title>
  16. <programlisting role="php"><![CDATA[
  17. $server = new Zend_Rest_Server();
  18. $server->setClass('My_Service_Class');
  19. $server->handle();
  20. ]]>
  21. </programlisting>
  22. </example>
  23. <example id="zend.rest.server.usage.example-2">
  24. <title>基本的な Zend_Rest_Server の使用法 - 関数</title>
  25. <programlisting role="php"><![CDATA[
  26. /**
  27. * Say Hello
  28. *
  29. * @param string $who
  30. * @param string $when
  31. * @return string
  32. */
  33. function sayHello($who, $when)
  34. {
  35. return "Hello $who, Good $when";
  36. }
  37. $server = new Zend_Rest_Server();
  38. $server->addFunction('sayHello');
  39. $server->handle();
  40. ]]>
  41. </programlisting>
  42. </example>
  43. </sect2>
  44. <sect2 id="zend.rest.server.args">
  45. <title>Zend_Rest_Server サービスのコール</title>
  46. <para>
  47. <classname>Zend_Rest_Server</classname> サービスをコールするには、
  48. GET/POST 時の引数 <code>method</code> にそのメソッド名を指定しなければなりません。
  49. その後に、任意の数の引数を続けることができます。これは、引数の名前
  50. (たとえば "who") を指定するか、あるいは引数の位置を表す数値
  51. (たとえば "arg1") を指定します。
  52. </para>
  53. <note>
  54. <title>数値インデックス</title>
  55. <para>
  56. 数値で指定する引数のインデックスは、1 から始まります。
  57. </para>
  58. </note>
  59. <para>
  60. 上の例の <code>sayHello</code> をコールするには、次のようにします。
  61. </para>
  62. <para>
  63. <code>?method=sayHello&amp;who=Davey&amp;when=Day</code>
  64. </para>
  65. <para>
  66. あるいは、このようにもできます。
  67. </para>
  68. <para>
  69. <code>?method=sayHello&amp;arg1=Davey&amp;arg2=Day</code>
  70. </para>
  71. </sect2>
  72. <sect2 id="zend.rest.server.customstatus">
  73. <title>独自のステータスの送信</title>
  74. <para>
  75. 値を返す際に独自のステータスを返すには、
  76. キー <code>status</code> を含む配列を返します。
  77. </para>
  78. <example id="zend.rest.server.customstatus.example-1">
  79. <title>独自のステータスを返す</title>
  80. <programlisting><![CDATA[
  81. /**
  82. * Say Hello
  83. *
  84. * @param string $who
  85. * @param string $when
  86. * @return array
  87. */
  88. function sayHello($who, $when)
  89. {
  90. return array('msg' => "An Error Occurred", 'status' => false);
  91. }
  92. $server = new Zend_Rest_Server();
  93. $server->addFunction('sayHello');
  94. $server->handle();
  95. ]]>
  96. </programlisting>
  97. </example>
  98. </sect2>
  99. <sect2 id="zend.rest.server.customxml">
  100. <title>独自の XML レスポンスを返す</title>
  101. <para>
  102. 独自の XML を返したい場合は、
  103. <code>DOMDocument</code>、<code>DOMElement</code> あるいは
  104. <code>SimpleXMLElement</code> オブジェクトを返します。
  105. </para>
  106. <example id="zend.rest.server.customxml.example-1">
  107. <title>独自の XML を返す</title>
  108. <programlisting><![CDATA[
  109. /**
  110. * Say Hello
  111. *
  112. * @param string $who
  113. * @param string $when
  114. * @return SimpleXMLElement
  115. */
  116. function sayHello($who, $when)
  117. {
  118. $xml ='<?xml version="1.0" encoding="ISO-8859-1"?>
  119. <mysite>
  120. <value>Hey $who! Hope you\'re having a good $when</value>
  121. <code>200</code>
  122. </mysite>';
  123. $xml = simplexml_load_string($xml);
  124. return $xml;
  125. }
  126. $server = new Zend_Rest_Server();
  127. $server->addFunction('sayHello');
  128. $server->handle();
  129. ]]>
  130. </programlisting>
  131. </example>
  132. <para>
  133. サービスからのレスポンスは、変更なしにクライアントに返されます。
  134. </para>
  135. </sect2>
  136. </sect1>
  137. <!--
  138. vim:se ts=4 sw=4 et:
  139. -->