Zend_Rest_Server.xml 4.5 KB

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