1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20765 -->
4 <sect3 id="zend.controller.router.routes.rest">
5 <title>Zend_Rest_Route</title>
8 <classname>Zend_Rest</classname>コンポーネントは、
9 <classname>Zend_Controller_Router_Rewrite</classname>のためにRESTfulなルートを含みます。
10 このルートは、<acronym>HTTP</acronym>メソッド及び<acronym>URI</acronym>をモジュール、
11 コントローラ及びアクションに変換することにより、
12 リクエストを割り振る標準化されたルーティング機構を提供します。
13 下表では、リクエスト・メソッドと<acronym>URI</acronym>を割り振る方法の概要を提示します。
17 <title>Zend_Rest_Route Behavior</title>
19 <tgroup cols='3' align='left' colsep='1' rowsep='1'>
20 <colspec colname='method' />
21 <colspec colname='URI' />
22 <colspec colname='route' />
26 <entry><acronym>URI</acronym></entry>
27 <entry>Module_Controller::action</entry>
32 <entry><constant>GET</constant></entry>
33 <entry><filename>/product/ratings/</filename></entry>
34 <entry><methodname>Product_RatingsController::indexAction()</methodname></entry>
37 <entry><constant>GET</constant></entry>
38 <entry><filename>/product/ratings/:id</filename></entry>
39 <entry><methodname>Product_RatingsController::getAction()</methodname></entry>
42 <entry><constant>POST</constant></entry>
43 <entry><filename>/product/ratings</filename></entry>
44 <entry><methodname>Product_RatingsController::postAction()</methodname></entry>
47 <entry><constant>PUT</constant></entry>
48 <entry><filename>/product/ratings/:id</filename></entry>
49 <entry><methodname>Product_RatingsController::putAction()</methodname></entry>
52 <entry><constant>DELETE</constant></entry>
53 <entry><filename>/product/ratings/:id</filename></entry>
55 <methodname>Product_RatingsController::deleteAction()</methodname>
59 <entry><constant>POST</constant></entry>
60 <entry><filename>/product/ratings/:id?_method=PUT</filename></entry>
61 <entry><methodname>Product_RatingsController::putAction()</methodname></entry>
64 <entry><constant>POST</constant></entry>
65 <entry><filename>/product/ratings/:id?_method=DELETE</filename></entry>
67 <methodname>Product_RatingsController::deleteAction()</methodname>
74 <sect4 id="zend.rest.route_usage">
75 <title>Zend_Rest_Route 利用法</title>
78 <classname>Zend_Rest_Route</classname>をアプリケーション全てで有効にするには、
79 構成パラメータ無しで構築して、フロントコントローラにデフォルトのルートとして追加してください。
82 <programlisting language="php"><![CDATA[
83 $front = Zend_Controller_Front::getInstance();
84 $restRoute = new Zend_Rest_Route($front);
85 $front->getRouter()->addRoute('default', $restRoute);
90 もし<classname>Zend_Rest_Route</classname>が有効なモジュール、
91 コントローラまたはアクションにマッチできなければ、<constant>FALSE</constant>を返します。
92 そして、ルータはルータのなかの次のルートを使ってマッチを試みます。
97 特定のモジュールで<classname>Zend_Rest_Route</classname>を有効にするには、
98 コンストラクタの3番目の引数としてモジュール名の配列を使って構成します。
101 <programlisting language="php"><![CDATA[
102 $front = Zend_Controller_Front::getInstance();
103 $restRoute = new Zend_Rest_Route($front, array(), array('product'));
104 $front->getRouter()->addRoute('rest', $restRoute);
108 特定のコントローラで<classname>Zend_Rest_Route</classname>を有効にするには、
109 コントローラ名の配列を各モジュールの配列の要素の値として追加します。
112 <programlisting language="php"><![CDATA[
113 $front = Zend_Controller_Front::getInstance();
114 $restRoute = new Zend_Rest_Route($front, array(), array(
115 'product' => array('ratings')
117 $front->getRouter()->addRoute('rest', $restRoute);
122 <!-- TODO : to be translated -->
123 <sect4 id="zend.rest.route_config">
124 <title>Zend_Rest_Route with Zend_Config_Ini</title>
127 To use <classname>Zend_Rest_Route</classname> from an <acronym>INI</acronym> config file, use a route type
128 parameter and set the config options:
131 <programlisting language="ini"><![CDATA[
132 routes.rest.type = Zend_Rest_Route
133 routes.rest.defaults.controller = object
134 routes.rest.mod = project,user
138 The 'type' option designates the RESTful routing config type.
139 The 'defaults' option is used to specify custom default
140 module, controller, and/or actions for the route. All other options
141 in the config group are treated as RESTful module names, and their
142 values are RESTful controller names. The example config defines
143 <classname>Mod_ProjectController</classname> and <classname>Mod_UserController</classname> as RESTful controllers.
147 Then use the <methodname>addConfig()</methodname> method of the Rewrite router object:
150 <programlisting language="php"><![CDATA[
151 $config = new Zend_Config_Ini('path/to/routes.ini');
152 $router = new Zend_Controller_Router_Rewrite();
153 $router->addConfig($config, 'routes');
158 <sect4 id="zend.rest.controller">
159 <title>Zend_Rest_Controller</title>
162 <classname>Zend_Rest_Route</classname>を使う
163 コントローラの開発を助けるか誘導するためには、
164 <classname>Zend_Rest_Controller</classname>からコントローラを拡張してください。
165 <classname>Zend_Rest_Controller</classname>では、
166 RESTfulなリソースのために5つの最も一般的に必要とされる操作を
167 抽象的なアクション・メソッドの形で定義します。
173 <emphasis><methodname>indexAction()</methodname></emphasis> -
174 リソースのインデックスを取得して、それをビューに割り当てます。
179 <emphasis><methodname>getAction()</methodname></emphasis> -
180 <acronym>URI</acronym>で識別される単一のリソースを取得して、それをビューに割り当てます。
185 <emphasis><methodname>postAction()</methodname></emphasis> -
186 単一の新しいリソースを受け取って、その状態を持続します。
191 <emphasis><methodname>putAction()</methodname></emphasis> -
192 <acronym>URI</acronym>で識別される単一のリソースを受け取って、その状態を持続します。
197 <emphasis><methodname>deleteAction()</methodname></emphasis> -
198 <acronym>URI</acronym>で識別される単一のリソースを削除します。