Zend_Rest_Route
Die Komponente Zend_Rest enthält eine RESTvolle Route für
Zend_Controller_Router_Rewrite. Diese Route bietet ein
standardisiertes Routing Schema das Routinganfragen durch Übersetzung der
HTTP Methode und der URI zu einem Modul,
Controller und einer Action. Die unten stehende Tabelle bietet eine Übersicht darüber
wie Anfragemethoden und URI's geroutet werden.
Verhalten von Zend_Rest_Route
Methode
URI
Module_Controller::action
GET
/product/ratings/
Product_RatingsController::indexAction()
GET
/product/ratings/:id
Product_RatingsController::getAction()
POST
/product/ratings
Product_RatingsController::postAction()
PUT
/product/ratings/:id
Product_RatingsController::putAction()
DELETE
/product/ratings/:id
Product_RatingsController::deleteAction()
POST
/product/ratings/:id?_method=PUT
Product_RatingsController::putAction()
POST
/product/ratings/:id?_method=DELETE
Product_RatingsController::deleteAction()
Verwendung von Zend_Rest_Route
Um Zend_Rest_Route für eine komplette Anwendung einzuschalten
muss diese ohne Konfigurationsparameter erstellt und als Standardroute dem
Frontcontroller hinzugefügt werden:
getRouter()->addRoute('default', $restRoute);
]]>
Wenn Zend_Rest_Route keinem gültigen Modul, Controller oder
keiner Action entspricht gibt diese FALSE zurück und der Router
versucht eine Entsprechung zu finden indem die nächste Route im Router verwendet
wird.
Um Zend_Rest_Route für spezielle Module einzuschalten muss diese
mit einem Array von Modulnamen als 3tes Argument des Constructors erstellt werden:
getRouter()->addRoute('rest', $restRoute);
]]>
Um Zend_Rest_Route für spezielle Controller einzuschalten muss
ein Array von Controllernamen als Wert für jedes Modul (Arrayelement) hinzugefügt
werden.
array('ratings')
));
$front->getRouter()->addRoute('rest', $restRoute);
]]>
Zend_Rest_Route mit Zend_Config_Ini
Um Zend_Rest_Route von einer INI
Konfigurationsdatei aus zu verwenden muss man den "route" Typ Parameter verwenden und
die Konfigurationsoptionen setzen:
Die 'type' Option benennt den RESTvollen Routing Konfigurationstyp. Die 'defaults'
Option wird verwendet um gemeinsame Standardmodule zu spezifizieren, und oder Aktionen
für die Route. Alle anderen Optionen in der Konfigurationsgruppe werden als RESTvolle
Modulnamen behandelt, und deren Werte sind RESTvolle Kontrollernamen. Die beispielhafte
Konfiguration definiert Mod_ProjectController und
Mod_UserController als RESTvolle Controller.
Dann ist die addConfig() Methode des Rewrite Router Objekts zu
verwenden:
addConfig($config, 'routes');
]]>
Zend_Rest_Controller
Um bei der Entwicklung von Controllern zu Hilfe zu sein die mit
Zend_Rest_Route verwendet werden, müssen die Controller von
Zend_Rest_Controller erweitert werden.
Zend_Rest_Controller definiert die 5 am meisten benötigten
Operationen für RESTvolle Ressourcen in der Form von abstrakten Actionmethoden.
indexAction() -
Sollte einen Index von Ressourcen empfangen und diese mit der View
verknüpfen.
getAction() -
Sollte eine einzelne Ressource empfangen die von einer URI
identifiziert wird und diese mit der Vew verknüpfen.
postAction() -
Sollte eine einzelne neue Ressource akzeptieren und dessen Status persistent
machen.
putAction() -
Sollte eine einzelne Ressource akzeptieren die von einer URI
identifiziert wird und dessen Status persistent machen.
deleteAction() -
Sollte eine einzelne Ressource löschen die von einer URI
identifiziert wird.