Programmer's Reference Guide
| Zend_Rest_Client |
Zend_Rest_Server
Einführung
Zend_Rest_Server ist ein komplett-feature REST Server.
Verwenden des REST Servers
Beispiel #1 Grundsätzliche Verwendung von Zend_Rest_Server: Klassen
- $server = new Zend_Rest_Server();
- $server->setClass('My_Service_Class');
- $server->handle();
Beispiel #2 Grundsätzliche Verwendung von Zend_Rest_Server: Funktionen
- /**
- * Sag Hallo
- *
- * @param string $who
- * @param string $when
- * @return string
- */
- function sayHello($who, $when)
- {
- return "Hallo $who, Gut $when";
- }
- $server = new Zend_Rest_Server();
- $server->addFunction('sayHello');
- $server->handle();
Aufruf eines Zend_Rest_Server Services
Um ein Zend_Rest_Server Service aufzurufen, muß ein
GET/POST method Argument mit einem Wert angegeben
werden, welcher der Methode entspricht, die aufgerufen werden soll. Es können
anschließend beliebig viele Argumente folgen, die entweder den Namen des Arguments
verwenden (z.B. "wer"), oder man kann arg verwenden, gefolgt von der
nummerischen Position des Arguments (z.B. "arg1").
Hinweis: Nummerischer Index
Nummerische Argumente verwenden einen 1-basierenden Index.
Um sayHello vom obigen Beispiel aufzurufen, kann:
?method=sayHello&who=Davey&when=Day
verwendet werden, oder:
?method=sayHello&arg1=Davey&arg2=Day
Senden eines eigenen Status
Wenn Werte zurückgegeben werden, kann man, um einen eigenen Status zurückzugeben, ein
Array mit einem status Schlüssel zurückgeben.
Beispiel #3 Einen eigenen Status zurückgeben
- /**
- * Sag Hallo
- *
- * @param string $who
- * @param string $when
- * @return array
- */
- function sayHello($who, $when)
- {
- }
- $server = new Zend_Rest_Server();
- $server->addFunction('sayHello');
- $server->handle();
Eigene XML Antworten zurückgeben
Wenn man eigenes XML zurückgeben will, kann einfach ein
DOMDocument, DOMElement oder SimpleXMLElement
Objekt zurückgegeben werden.
Beispiel #4 Eigenes XML zurückgeben
- /**
- * Sag Hallo
- *
- * @param string $who
- * @param string $when
- * @return SimpleXMLElement
- */
- function sayHello($who, $when)
- {
- $xml ='<?xml version="1.0" encoding="ISO-8859-1"?>
- <mysite>
- <value>Hallo $who! Hoffentlich hast Du einen guten $when</value>
- <code>200</code>
- </mysite>';
- $xml = simplexml_load_string($xml);
- return $xml;
- }
- $server = new Zend_Rest_Server();
- $server->addFunction('sayHello');
- $server->handle();
Die Antwort des Services wird ohne Modifizierungen zum Client zurückgegeben.
| Zend_Rest_Client |
Add A Comment
Please do not report issues via comments; use the ZF Issue Tracker.
If you have a JIRA/Crowd account, we suggest you login first before commenting.

Comments
I also don't understand what this "Zend_Rest_Server" is supposed to do and why it's useful. "Zend_Rest_Server is intended as a fully-featured REST server." is not enough to explain what this class is intended to be used for. A REST server should be able to:
1. receive and parse a request
2. retrieve, create, update, or delete the requested resource
3. then respond with a representation of the resource in the appropriate format (XML or JSON)
...and that's it! Nothing more. Nothing less.
There is nothing in this documentation that makes me think that Zend_Rest_Server does any of that. How are we even supposed to use this?
I would expect these server and client classes to provide some common framework method on handling requests, responses, errors, GET, POST, PUT, DELETE methods
Like a POST and PUT methods should always return the URI of the resource just got created or updated.
I don't see any such thing in these classes, hence better these should be removed, else programmers will wrongly use these, which is more of SOAP or RPC rest invocation classes.
resources.frontController.plugins.putHandler = "Zend_Controller_Plugin_PutHandler"
it's basically a crappy little helper that checks to see if there's a put request and if so then it puts the variables you're sending along with it into the params. idk why the params aren't included by default when trying to see your vars passed in the putAction
http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.routes.rest
Zend_Rest_Server, as pointed out in this comments, isn't really that useful and is probably on its way out.