Zend_Controller-Router-Route-Rest.xml 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 19161 -->
  4. <sect3 id="zend.controller.router.routes.rest">
  5. <title>Zend_Rest_Route</title>
  6. <para>
  7. <classname>Zend_Rest</classname>コンポーネントは、
  8. <classname>Zend_Controller_Router_Rewrite</classname>のためにRESTfulなルートを含みます。
  9. このルートは、<acronym>HTTP</acronym>メソッド及び<acronym>URI</acronym>をモジュール、
  10. コントローラ及びアクションに変換することにより、
  11. リクエストを割り振る標準化されたルーティング機構を提供します。
  12. 下表では、リクエスト・メソッドと<acronym>URI</acronym>を割り振る方法の概要を提示します。
  13. </para>
  14. <table frame="all">
  15. <title>Zend_Rest_Route Behavior</title>
  16. <tgroup cols='3' align='left' colsep='1' rowsep='1'>
  17. <colspec colname='method' />
  18. <colspec colname='URI' />
  19. <colspec colname='route' />
  20. <thead>
  21. <row>
  22. <entry>メソッド</entry>
  23. <entry><acronym>URI</acronym></entry>
  24. <entry>Module_Controller::action</entry>
  25. </row>
  26. </thead>
  27. <tbody>
  28. <row>
  29. <entry><acronym>GET</acronym></entry>
  30. <entry><filename>/product/ratings/</filename></entry>
  31. <entry><methodname>Product_RatingsController::indexAction()</methodname></entry>
  32. </row>
  33. <row>
  34. <entry><acronym>GET</acronym></entry>
  35. <entry><filename>/product/ratings/:id</filename></entry>
  36. <entry><methodname>Product_RatingsController::getAction()</methodname></entry>
  37. </row>
  38. <row>
  39. <entry><acronym>POST</acronym></entry>
  40. <entry><filename>/product/ratings</filename></entry>
  41. <entry><methodname>Product_RatingsController::postAction()</methodname></entry>
  42. </row>
  43. <row>
  44. <entry><acronym>PUT</acronym></entry>
  45. <entry><filename>/product/ratings/:id</filename></entry>
  46. <entry><methodname>Product_RatingsController::putAction()</methodname></entry>
  47. </row>
  48. <row>
  49. <entry><acronym>DELETE</acronym></entry>
  50. <entry><filename>/product/ratings/:id</filename></entry>
  51. <entry>
  52. <methodname>Product_RatingsController::deleteAction()</methodname>
  53. </entry>
  54. </row>
  55. <row>
  56. <entry><acronym>POST</acronym></entry>
  57. <entry><command>/product/ratings/:id?_method="PUT"</command></entry>
  58. <entry><methodname>Product_RatingsController::putAction()</methodname></entry>
  59. </row>
  60. <row>
  61. <entry><acronym>POST</acronym></entry>
  62. <entry><command>/product/ratings/:id?_method="DELETE"</command></entry>
  63. <entry>
  64. <methodname>Product_RatingsController::deleteAction()</methodname>
  65. </entry>
  66. </row>
  67. </tbody>
  68. </tgroup>
  69. </table>
  70. <para>
  71. <classname>Zend_Rest_Route</classname>をアプリケーション全てで有効にするには、
  72. 構成パラメータ無しで構築して、フロントコントローラにデフォルトのルートとして追加してください。
  73. </para>
  74. <programlisting language="php"><![CDATA[
  75. $front = Zend_Controller_Front::getInstance();
  76. $restRoute = new Zend_Rest_Route($front);
  77. $front->getRouter()->addRoute('default', $restRoute);
  78. ]]></programlisting>
  79. <note>
  80. <para>
  81. もし<classname>Zend_Rest_Route</classname>が有効なモジュール、
  82. コントローラまたはアクションにマッチできなければ、<constant>FALSE</constant>を返します。
  83. そして、ルータはルータのなかの次のルートを使ってマッチを試みます。
  84. </para>
  85. </note>
  86. <para>
  87. 特定のモジュールで<classname>Zend_Rest_Route</classname>を有効にするには、
  88. コンストラクタの3番目の引数としてモジュール名の配列を使って構成します。
  89. </para>
  90. <programlisting language="php"><![CDATA[
  91. $front = Zend_Controller_Front::getInstance();
  92. $restRoute = new Zend_Rest_Route($front, array(), array('product'));
  93. $front->getRouter()->addRoute('rest', $restRoute);
  94. ]]></programlisting>
  95. <para>
  96. 特定のコントローラで<classname>Zend_Rest_Route</classname>を有効にするには、
  97. コントローラ名の配列を各モジュールの配列の要素の値として追加します。
  98. </para>
  99. <programlisting language="php"><![CDATA[
  100. $front = Zend_Controller_Front::getInstance();
  101. $restRoute = new Zend_Rest_Route($front, array(), array(
  102. 'product' => array('ratings')
  103. ));
  104. $front->getRouter()->addRoute('rest', $restRoute);
  105. ]]></programlisting>
  106. <sect4 id="zend.rest.controller">
  107. <title>Zend_Rest_Controller</title>
  108. <para>
  109. <classname>Zend_Rest_Route</classname>を使う
  110. コントローラの開発を助けるか誘導するためには、
  111. <classname>Zend_Rest_Controller</classname>からコントローラを拡張してください。
  112. <classname>Zend_Rest_Controller</classname>では、
  113. RESTfulなリソースのために5つの最も一般的に必要とされる操作を
  114. 抽象的なアクション・メソッドの形で定義します。
  115. </para>
  116. <itemizedlist>
  117. <listitem>
  118. <para>
  119. <emphasis><methodname>indexAction()</methodname></emphasis> -
  120. リソースのインデックスを取得して、それをビューに割り当てます。
  121. </para>
  122. </listitem>
  123. <listitem>
  124. <para>
  125. <emphasis><methodname>getAction()</methodname></emphasis> -
  126. <acronym>URI</acronym>で識別される単一のリソースを取得して、それをビューに割り当てます。
  127. </para>
  128. </listitem>
  129. <listitem>
  130. <para>
  131. <emphasis><methodname>postAction()</methodname></emphasis> -
  132. 単一の新しいリソースを受け取って、その状態を持続します。
  133. </para>
  134. </listitem>
  135. <listitem>
  136. <para>
  137. <emphasis><methodname>putAction()</methodname></emphasis> -
  138. <acronym>URI</acronym>で識別される単一のリソースを受け取って、その状態を持続します。
  139. </para>
  140. </listitem>
  141. <listitem>
  142. <para>
  143. <emphasis><methodname>deleteAction()</methodname></emphasis> -
  144. <acronym>URI</acronym>で識別される単一のリソースを削除します。
  145. </para>
  146. </listitem>
  147. </itemizedlist>
  148. </sect4>
  149. </sect3>
  150. <!--
  151. vim:se ts=4 sw=4 et:
  152. -->