TigerZF
🌐Español

60.3. Zend_Rest_Server

60.3.1. Introducción

Zend_Rest_Server pretende ser un servidor REST completo.

60.3.2. Uso del servidor REST

Ejemplo 60.6. Uso básico de Zend_Rest_Server - Clases

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

Ejemplo 60.7. Uso básico de Zend_Rest_Server - Funciones

/**
 * Say Hello
 *
 * @param string $who
 * @param string $when
 * @return string
 */
function sayHello($who, $when)
{
    return "Hello $who, Good $when";
}

$server = new Zend_Rest_Server();
$server->addFunction('sayHello');
$server->handle();

60.3.3. Llamar a un servicio de Zend_Rest_Server

Para llamar a un servicio de Zend_Rest_Server, debe proporcionar un argumento GET/POST method con un valor que sea el método que desea llamar. Después puede continuar con cualquier número de argumentos usando el nombre del argumento (por ejemplo, "who") o usando arg seguido de la posición numérica del argumento (por ejemplo, "arg1").

[Note] Índice numérico

Los argumentos numéricos usan un índice basado en 1.

Para llamar a sayHello del ejemplo anterior, puede usar cualquiera de estas dos formas:

?method=sayHello&who=Davey&when=Day

o:

?method=sayHello&arg1=Davey&arg2=Day

60.3.4. Envío de un estado personalizado

Al devolver valores, para devolver un estado personalizado, puede devolver un array con una clave status.

Ejemplo 60.8. Devolución de un estado personalizado

/**
 * Say Hello
 *
 * @param string $who
 * @param string $when
 * @return array
 */
function sayHello($who, $when)
{
    return array('msg' => "An Error Occurred", 'status' => false);
}

$server = new Zend_Rest_Server();
$server->addFunction('sayHello');
$server->handle();

60.3.5. Devolución de respuestas XML personalizadas

Si desea devolver XML personalizado, simplemente devuelva un objeto DOMDocument, DOMElement o SimpleXMLElement.

Ejemplo 60.9. Devolución de XML personalizado

/**
 * Say Hello
 *
 * @param string $who
 * @param string $when
 * @return SimpleXMLElement
 */
function sayHello($who, $when)
{
    $xml ='<?xml version="1.0" encoding="ISO-8859-1"?>
<mysite>
    <value>Hey $who! Hope you\'re having a good $when</value>
    <code>200</code>
</mysite>';

    $xml = simplexml_load_string($xml);
    return $xml;
}

$server = new Zend_Rest_Server();
$server->addFunction('sayHello');

$server->handle();

La respuesta del servicio se devolverá sin modificación al cliente.