Zend_Rest_Server

Einführung

Zend_Rest_Server ist ein komplett-feature REST Server.

Verwenden des REST Servers

Beispiel 668. Grundsätzliche Verwendung von Zend_Rest_Server: Klassen

$server = new Zend_Rest_Server();
$server->setClass('My_Service_Class');
$server->handle();

Beispiel 669. 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").

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 670. Einen eigenen Status zurückgeben

/**
 * Sag Hallo
 *
 * @param string $who
 * @param string $when
 * @return array
 */
function sayHello($who, $when)
{
    return array('msg' => 'Ein Fehler ist aufgetreten', 'status' => false);
}

$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 671. 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.