|
|
@@ -1,29 +1,39 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
-<!-- EN-Revision: 19477 -->
|
|
|
-<!-- Reviewed: no -->
|
|
|
+ <!-- EN-Revision: 19477 -->
|
|
|
+ <!-- Reviewed: no -->
|
|
|
<sect1 id="zend.json.server">
|
|
|
<title>Zend_Json_Server - servidor JSON-RPC</title>
|
|
|
|
|
|
<para>
|
|
|
- <classname>Zend_Json_Server</classname> es una implementación del
|
|
|
- servidor <ulink url="http://groups.google.com/group/json-rpc/"
|
|
|
- >JSON-RPC</ulink> Soporta tanto la versión 1 de la especificación
|
|
|
- <ulink url="http://json-rpc.org/wiki/specification">JSON-RPC</ulink>
|
|
|
- así como la especificación de la <ulink
|
|
|
- url="http://groups.google.com/group/json-rpc/web/json-rpc-1-2-proposal"
|
|
|
- >versión 2</ulink>; además, provee una implementación de
|
|
|
- <acronym>PHP</acronym> de la especificación del <ulink
|
|
|
- url="http://groups.google.com/group/json-schema/web/service-mapping-description-proposal"
|
|
|
- >Service Mapping Description (SMD)</ulink> para prestar un servicio
|
|
|
- de metadatos a consumidores del servicio.</para>
|
|
|
-
|
|
|
- <para>JSON-RPC es un protocolo liviano de Remote Procedure Call que utiliza
|
|
|
- JSON para envolver sus mensajes. Esta implementación JSON-RPC sigue la
|
|
|
- <acronym>API</acronym>
|
|
|
- <acronym>PHP</acronym> de <ulink
|
|
|
- url="http://us.php.net/manual/en/function.soap-soapserver-construct.php"
|
|
|
- >SoapServer</ulink>. Esto significa que, en una situación típica,
|
|
|
- simplemente:</para>
|
|
|
+ <classname>Zend_Json_Server</classname>
|
|
|
+ es una implementación del
|
|
|
+ servidor
|
|
|
+ <ulink url="http://groups.google.com/group/json-rpc/">JSON-RPC</ulink>
|
|
|
+ Soporta tanto la versión 1 de la especificación
|
|
|
+ <ulink url="http://json-rpc.org/wiki/specification">JSON-RPC</ulink>
|
|
|
+ así como la especificación de la
|
|
|
+ <ulink url="http://groups.google.com/group/json-rpc/web/json-rpc-1-2-proposal">versión
|
|
|
+ 2</ulink>
|
|
|
+ ; además, provee una implementación de
|
|
|
+ <acronym>PHP</acronym>
|
|
|
+ de la especificación del
|
|
|
+ <ulink url="http://groups.google.com/group/json-schema/web/service-mapping-description-proposal">Service
|
|
|
+ Mapping Description (SMD)</ulink>
|
|
|
+ para prestar un servicio
|
|
|
+ de metadatos a consumidores del servicio.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ JSON-RPC es un protocolo liviano de Remote Procedure Call que utiliza
|
|
|
+ JSON para envolver sus
|
|
|
+ mensajes. Esta implementación JSON-RPC sigue la
|
|
|
+ <acronym>API</acronym>
|
|
|
+ <acronym>PHP</acronym>
|
|
|
+ de
|
|
|
+ <ulink url="http://us.php.net/manual/en/function.soap-soapserver-construct.php">SoapServer</ulink>
|
|
|
+ . Esto significa que, en una situación típica,
|
|
|
+ simplemente:
|
|
|
+ </para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
@@ -39,13 +49,20 @@
|
|
|
</itemizedlist>
|
|
|
|
|
|
<para>
|
|
|
- <classname>Zend_Json_Server</classname> utiliza <xref
|
|
|
- linkend="zend.server.reflection"/> para realizar reflexión sobre
|
|
|
+ <classname>Zend_Json_Server</classname>
|
|
|
+ utiliza
|
|
|
+ <xref linkend="zend.server.reflection"/>
|
|
|
+ para realizar reflexión sobre
|
|
|
cualquiera de las clases o funciones agregadas, y utiliza esa
|
|
|
información para construir tanto la SMD y hacer cumplir el método de
|
|
|
- llamado de firmas. Como tal, es imperativo que cualquier de las
|
|
|
- funciones agregadas y/o los métodos de clase tengan mínimamente una
|
|
|
- plena documentación de <acronym>PHP</acronym> docblocks:</para>
|
|
|
+ llamado de firmas. Como
|
|
|
+ tal, es imperativo que cualquier de las
|
|
|
+ funciones agregadas y/o los métodos de clase tengan
|
|
|
+ mínimamente una
|
|
|
+ plena documentación de
|
|
|
+ <acronym>PHP</acronym>
|
|
|
+ docblocks:
|
|
|
+ </para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
@@ -57,19 +74,25 @@
|
|
|
</itemizedlist>
|
|
|
|
|
|
<para>
|
|
|
- <classname>Zend_Json_Server</classname> escucha por solicitudes POST
|
|
|
+ <classname>Zend_Json_Server</classname>
|
|
|
+ escucha por solicitudes POST
|
|
|
únicamente en este momento; afortunadamente, la mayoría de las
|
|
|
implementaciones del cliente JSON-RPC en los medios en el momento de
|
|
|
- escribir esto, sólo requieren a POST como es. Esto hace que sea fácil de
|
|
|
- utilizar el mismo punto final del servidor para manejar a ambas
|
|
|
- peticiones así como para entregar el servicio SMD, como se muestra en el
|
|
|
- siguiente ejemplo.</para>
|
|
|
+ escribir esto, sólo
|
|
|
+ requieren a POST como es. Esto hace que sea fácil de
|
|
|
+ utilizar el mismo punto final del
|
|
|
+ servidor para manejar a ambas
|
|
|
+ peticiones así como para entregar el servicio SMD, como se
|
|
|
+ muestra en el
|
|
|
+ siguiente ejemplo.
|
|
|
+ </para>
|
|
|
|
|
|
<example id="zend.json.server.usage">
|
|
|
<title>Uso de Zend_Json_Server</title>
|
|
|
|
|
|
<para>Primero, definir una clase que queramos exponer vía servidor
|
|
|
- JSON-RPC. Vamos a la clase 'Calculator', y definir los métodos para
|
|
|
+ JSON-RPC. Vamos a la clase
|
|
|
+ 'Calculator', y definir los métodos para
|
|
|
'add', 'subtract', 'multiply', y 'divide':</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -128,11 +151,18 @@ class Calculator
|
|
|
}
|
|
|
]]></programlisting>
|
|
|
|
|
|
- <para>Nótese que cada método tiene un docblock con entradas indicando
|
|
|
- cada parámetro y su tipo, así como una entrada para el valor de
|
|
|
- retorno. Esto es <emphasis>absolutamente crítico</emphasis> cuando
|
|
|
- se usa <classname>Zend_Json_Server</classname> -- o cualquier otro
|
|
|
- componente del servidor en Zend Framework, por esa cuestión.</para>
|
|
|
+ <para>
|
|
|
+ Nótese que cada método tiene un docblock con entradas indicando
|
|
|
+ cada parámetro y su tipo,
|
|
|
+ así como una entrada para el valor de
|
|
|
+ retorno. Esto es
|
|
|
+ <emphasis>absolutamente crítico</emphasis>
|
|
|
+ cuando
|
|
|
+ se usa
|
|
|
+ <classname>Zend_Json_Server</classname>
|
|
|
+ -- o cualquier otro
|
|
|
+ componente del servidor en Zend Framework, por esa cuestión.
|
|
|
+ </para>
|
|
|
|
|
|
<para>Ahora, crearemos un script para manejar las peticiones:</para>
|
|
|
|
|
|
@@ -146,10 +176,16 @@ $server->setClass('Calculator');
|
|
|
$server->handle();
|
|
|
]]></programlisting>
|
|
|
|
|
|
- <para>Sin embargo, esto no soluciona el problema de devolución de un
|
|
|
- SMD para que el cliente JSON-RPC pueda autodescubrir los métodos.
|
|
|
- Esto puede lograrse determinando el método del requerimiento <acronym>HTTP</acronym>, y
|
|
|
- luego especificando algún servidor de metadatos:</para>
|
|
|
+ <para>
|
|
|
+ Sin embargo, esto no soluciona el problema de devolución de un
|
|
|
+ SMD para que el cliente
|
|
|
+ JSON-RPC pueda autodescubrir los métodos.
|
|
|
+ Esto puede lograrse determinando el método del
|
|
|
+ requerimiento
|
|
|
+ <acronym>HTTP</acronym>
|
|
|
+ , y
|
|
|
+ luego especificando algún servidor de metadatos:
|
|
|
+ </para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
$server = new Zend_Json_Server();
|
|
|
@@ -173,7 +209,8 @@ $server->handle();
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>Si utiliza el servidor JSON-RPC con Dojo toolkit, también
|
|
|
- necesitará establecer un flag de compatibilidad especial para
|
|
|
+ necesitará establecer un flag
|
|
|
+ de compatibilidad especial para
|
|
|
garantizar que los dos interoperen correctamente:</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -200,80 +237,128 @@ $server->handle();
|
|
|
<sect2 id="zend.json.server.details">
|
|
|
<title>Detalles Avanzados</title>
|
|
|
|
|
|
- <para>Aunque la mayor funcionalidad de
|
|
|
- <classname>Zend_Json_Server</classname> se puntualiza en <xref
|
|
|
- linkend="zend.json.server.usage"/>, hay más funcionalidad
|
|
|
- avanzada disponible.</para>
|
|
|
+ <para>
|
|
|
+ Aunque la mayor funcionalidad de
|
|
|
+ <classname>Zend_Json_Server</classname>
|
|
|
+ se puntualiza en
|
|
|
+ <xref linkend="zend.json.server.usage"/>
|
|
|
+ , hay más funcionalidad
|
|
|
+ avanzada disponible.
|
|
|
+ </para>
|
|
|
|
|
|
<sect3 id="zend.json.server.details.zendjsonserver">
|
|
|
<title>Zend_Json_Server</title>
|
|
|
|
|
|
<para>
|
|
|
- <classname>Zend_Json_Server</classname> es la clase núcleo en la
|
|
|
+ <classname>Zend_Json_Server</classname>
|
|
|
+ es la clase núcleo en la
|
|
|
propuesta JSON-RPC; que maneja todas las peticiones y como
|
|
|
respuesta devuelve un conjunto de datos. Tiene los siguientes
|
|
|
- métodos:</para>
|
|
|
+ métodos:
|
|
|
+ </para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
- <para><methodname>addFunction($function)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>addFunction($function)</methodname>
|
|
|
+ :
|
|
|
Especifica la función de espacio del usuario para
|
|
|
- agregar al servidor.</para>
|
|
|
+ agregar al servidor.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setClass($class)</methodname>: Especifica
|
|
|
+ <para>
|
|
|
+ <methodname>setClass($class)</methodname>
|
|
|
+ : Especifica
|
|
|
una clase u objeto para agregar al servidor; todos los
|
|
|
- métodos públicos de ese item serán expuestos como
|
|
|
- métodos JSON-RPC.</para>
|
|
|
+ métodos
|
|
|
+ públicos de ese item serán expuestos como
|
|
|
+ métodos JSON-RPC.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>fault($fault = null, $code = 404, $data =
|
|
|
- null)</methodname>: Crea y devuelve un objeto
|
|
|
- <classname>Zend_Json_Server_Error</classname>.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>fault($fault = null, $code = 404, $data =
|
|
|
+ null)</methodname>
|
|
|
+ : Crea y devuelve un objeto
|
|
|
+ <classname>Zend_Json_Server_Error</classname>
|
|
|
+ .
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>handle($request = false)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>handle($request = false)</methodname>
|
|
|
+ :
|
|
|
Maneja una solicitud JSON-RPC; opcionalmente, pasa un
|
|
|
- objeto <classname>Zend_Json_Server_Request</classname> a
|
|
|
- utlizar (crea uno por defecto).</para>
|
|
|
+ objeto
|
|
|
+ <classname>Zend_Json_Server_Request</classname>
|
|
|
+ a
|
|
|
+ utlizar (crea uno por defecto).
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getFunctions()</methodname>: Devuelve una
|
|
|
- lista de todos los métodos agregados.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getFunctions()</methodname>
|
|
|
+ : Devuelve una
|
|
|
+ lista de todos los métodos agregados.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setRequest(Zend_Json_Server_Request
|
|
|
- $request)</methodname>: Especifica un objeto
|
|
|
- solicitud para el servidor a utilizar.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>setRequest(Zend_Json_Server_Request
|
|
|
+ $request)</methodname>
|
|
|
+ : Especifica un objeto
|
|
|
+ solicitud para el servidor a utilizar.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getRequest()</methodname>: Recupera el
|
|
|
- objeto solicitud usado por el servidor.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getRequest()</methodname>
|
|
|
+ : Recupera el
|
|
|
+ objeto solicitud usado por el servidor.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setResponse(Zend_Json_Server_Response
|
|
|
- $response)</methodname>: Establece el objeto
|
|
|
- respuesta para el servidor a utilizar.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>setResponse(Zend_Json_Server_Response
|
|
|
+ $response)</methodname>
|
|
|
+ : Establece el objeto
|
|
|
+ respuesta para el servidor a utilizar.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getResponse()</methodname>: Recupera el
|
|
|
- objeto respuesta usado por el servidor.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getResponse()</methodname>
|
|
|
+ : Recupera el
|
|
|
+ objeto respuesta usado por el servidor.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setAutoEmitResponse($flag)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setAutoEmitResponse($flag)</methodname>
|
|
|
+ :
|
|
|
Indica si el servidor debería emitir automáticamente la
|
|
|
- respuesta y todas las cabeceras; por defecto, esto es
|
|
|
- verdadero.</para>
|
|
|
+ respuesta y todas
|
|
|
+ las cabeceras; por defecto, esto es
|
|
|
+ verdadero.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>autoEmitResponse()</methodname>: Determina
|
|
|
+ <para>
|
|
|
+ <methodname>autoEmitResponse()</methodname>
|
|
|
+ : Determina
|
|
|
si la auto-emisión de la respuesta está
|
|
|
- habilitada.</para>
|
|
|
+ habilitada.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getServiceMap()</methodname>: Recupera la
|
|
|
+ <para>
|
|
|
+ <methodname>getServiceMap()</methodname>
|
|
|
+ : Recupera la
|
|
|
descripción del mapa de servicio en el form de un objeto
|
|
|
- <classname>Zend_Json_Server_Smd</classname>.</para>
|
|
|
+ <classname>Zend_Json_Server_Smd</classname>
|
|
|
+ .
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
</sect3>
|
|
|
@@ -281,234 +366,391 @@ $server->handle();
|
|
|
<sect3 id="zend.json.server.details.zendjsonserverrequest">
|
|
|
<title>Zend_Json_Server_Request</title>
|
|
|
|
|
|
- <para>El medio ambiente de una solicitud JSON-RPC está encapsulado
|
|
|
- en el objeto <classname>Zend_Json_Server_Request</classname>.
|
|
|
+ <para>
|
|
|
+ El medio ambiente de una solicitud JSON-RPC está encapsulado
|
|
|
+ en el objeto
|
|
|
+ <classname>Zend_Json_Server_Request</classname>
|
|
|
+ .
|
|
|
Este objeto le permite establecer porciones necesarias de la
|
|
|
- solicitud JSON-RPC, incluida el ID de la solicitud, parámetros y
|
|
|
- especificaciones de la versión JSON-RPC. Tiene la capacidad de
|
|
|
+ solicitud JSON-RPC,
|
|
|
+ incluida el ID de la solicitud, parámetros y
|
|
|
+ especificaciones de la versión JSON-RPC.
|
|
|
+ Tiene la capacidad de
|
|
|
cargarse a sí mismo via JSON o un conjunto de opciones, y puede
|
|
|
mostrase a si mismo como JSON vía el método
|
|
|
- <methodname>toJson()</methodname>.</para>
|
|
|
+ <methodname>toJson()</methodname>
|
|
|
+ .
|
|
|
+ </para>
|
|
|
|
|
|
<para>El objeto solicitud tiene los siguientes métodos disponibles:</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
- <para><methodname>setOptions(array $options)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setOptions(array $options)</methodname>
|
|
|
+ :
|
|
|
Especifica la configuración del objeto.
|
|
|
- <varname>$options</varname> puede contener claves
|
|
|
+ <varname>$options</varname>
|
|
|
+ puede contener claves
|
|
|
que concuerden con cualuier método 'set':
|
|
|
- <methodname>setParams()</methodname>,
|
|
|
- <methodname>setMethod()</methodname>,
|
|
|
- <methodname>setId()</methodname>, y
|
|
|
- <methodname>setVersion()</methodname>.</para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para><methodname>addParam($value, $key =
|
|
|
- null)</methodname>: Agrega un parámetro para usar con el
|
|
|
- método de llamada. Los parámetros pueden ser sólo los
|
|
|
+ <methodname>setParams()</methodname>
|
|
|
+ ,
|
|
|
+ <methodname>setMethod()</methodname>
|
|
|
+ ,
|
|
|
+ <methodname>setId()</methodname>
|
|
|
+ , y
|
|
|
+ <methodname>setVersion()</methodname>
|
|
|
+ .
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <methodname>addParam($value, $key =
|
|
|
+ null)</methodname>
|
|
|
+ : Agrega un parámetro para usar con el
|
|
|
+ método de llamada. Los parámetros
|
|
|
+ pueden ser sólo los
|
|
|
valores, o pueden incluir opcionalmente el nombre del
|
|
|
- parámetro.</para>
|
|
|
+ parámetro.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>addParams(array $params)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>addParams(array $params)</methodname>
|
|
|
+ :
|
|
|
Agrega múltiples parámetros a la vez; proxies a
|
|
|
- <methodname>addParam()</methodname></para>
|
|
|
+ <methodname>addParam()</methodname>
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setParams(array $params)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setParams(array $params)</methodname>
|
|
|
+ :
|
|
|
Establece todos los parámetros a la vez; sobrescribe
|
|
|
- cualquiera de los parámetros existentes.</para>
|
|
|
+ cualquiera de los
|
|
|
+ parámetros existentes.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getParam($index)</methodname>: Recupera un
|
|
|
- parámetro por posición o por el nombre.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getParam($index)</methodname>
|
|
|
+ : Recupera un
|
|
|
+ parámetro por posición o por el nombre.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getParams()</methodname>: Recupera todos
|
|
|
- los parámetros a la vez.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getParams()</methodname>
|
|
|
+ : Recupera todos
|
|
|
+ los parámetros a la vez.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setMethod($name)</methodname>: Establece
|
|
|
- el método para llamar.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>setMethod($name)</methodname>
|
|
|
+ : Establece
|
|
|
+ el método para llamar.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getMethod()</methodname>: Recupera el
|
|
|
- método que será llamado.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getMethod()</methodname>
|
|
|
+ : Recupera el
|
|
|
+ método que será llamado.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>isMethodError()</methodname>: Determinar
|
|
|
+ <para>
|
|
|
+ <methodname>isMethodError()</methodname>
|
|
|
+ : Determinar
|
|
|
si la solicitud está malformada o no y si daría como
|
|
|
- resultado un error.</para>
|
|
|
+ resultado un
|
|
|
+ error.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setId($name)</methodname>: Establecer el
|
|
|
+ <para>
|
|
|
+ <methodname>setId($name)</methodname>
|
|
|
+ : Establecer el
|
|
|
identificador de solicitud(utilizado por el cliente para
|
|
|
- igualar las solicitudes de respuestas).</para>
|
|
|
+ igualar las solicitudes de respuestas).
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getId()</methodname>: Recuperar el
|
|
|
- identificador de solicitudes.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getId()</methodname>
|
|
|
+ : Recuperar el
|
|
|
+ identificador de solicitudes.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setVersion($version)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setVersion($version)</methodname>
|
|
|
+ :
|
|
|
Establecer la versión de la especificación JSON-RPC que
|
|
|
- conforma la solicitud. Puede ser '1.0' o '2.0'.</para>
|
|
|
+ conforma la
|
|
|
+ solicitud. Puede ser '1.0' o '2.0'.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getVersion()</methodname>: Recuperar la
|
|
|
+ <para>
|
|
|
+ <methodname>getVersion()</methodname>
|
|
|
+ : Recuperar la
|
|
|
versión de la especificación JSON-RPC utilizados por la
|
|
|
- solicitud.</para>
|
|
|
+ solicitud.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>loadJson($json)</methodname>: Cargar el
|
|
|
- objeto solicitud de una cadena JSON.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>loadJson($json)</methodname>
|
|
|
+ : Cargar el
|
|
|
+ objeto solicitud de una cadena JSON.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>toJson()</methodname>: Mostrar la
|
|
|
- solicitud como un string JSON.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>toJson()</methodname>
|
|
|
+ : Mostrar la
|
|
|
+ solicitud como un string JSON.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
|
|
|
- <para>Una versión específica de <acronym>HTTP</acronym> está disponible a través de
|
|
|
- <classname>Zend_Json_Server_Request_Http</classname>. Esta
|
|
|
+ <para>
|
|
|
+ Una versión específica de
|
|
|
+ <acronym>HTTP</acronym>
|
|
|
+ está disponible a través de
|
|
|
+ <classname>Zend_Json_Server_Request_Http</classname>
|
|
|
+ . Esta
|
|
|
clase podrá recuperar la solicitud via
|
|
|
- <methodname>php://input</methodname>, y permite el acceso
|
|
|
+ <methodname>php://input</methodname>
|
|
|
+ , y permite el acceso
|
|
|
JSON sin procesar vía el método
|
|
|
- <methodname>getRawJson()</methodname>.</para>
|
|
|
+ <methodname>getRawJson()</methodname>
|
|
|
+ .
|
|
|
+ </para>
|
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="zend.json.server.details.zendjsonserverresponse">
|
|
|
<title>Zend_Json_Server_Response</title>
|
|
|
|
|
|
- <para>La respuesta del conjunto de datos JSON-RPC es encapsulada en
|
|
|
- el objeto <classname>Zend_Json_Server_Response</classname>. Este
|
|
|
+ <para>
|
|
|
+ La respuesta del conjunto de datos JSON-RPC es encapsulada en
|
|
|
+ el objeto
|
|
|
+ <classname>Zend_Json_Server_Response</classname>
|
|
|
+ . Este
|
|
|
objeto le permite ajustar el valor de retorno de la solicitud,
|
|
|
- siendo la respuesta un error o no, el identificador de
|
|
|
- solicitud, con que versión de especificación esta conformada la
|
|
|
- respuesta de JSON-RPC, y, opcionalmente el mapa de servicio.</para>
|
|
|
+ siendo la
|
|
|
+ respuesta un error o no, el identificador de
|
|
|
+ solicitud, con que versión de
|
|
|
+ especificación esta conformada la
|
|
|
+ respuesta de JSON-RPC, y, opcionalmente el mapa de
|
|
|
+ servicio.
|
|
|
+ </para>
|
|
|
|
|
|
<para>El objeto respuesta tiene los siguientes métodos disponibles:</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
- <para><methodname>setResult($value)</methodname>: Establecer
|
|
|
- el resultado de la respuesta.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>setResult($value)</methodname>
|
|
|
+ : Establecer
|
|
|
+ el resultado de la respuesta.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getResult()</methodname>: Recuperar el
|
|
|
- resultado de la respuesta.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getResult()</methodname>
|
|
|
+ : Recuperar el
|
|
|
+ resultado de la respuesta.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setError(Zend_Json_Server_Error
|
|
|
- $error)</methodname>: Establecer un objeto error. Si
|
|
|
- ya está, este será utilizado como la respuesta cuando se
|
|
|
- serialize a JSON.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>setError(Zend_Json_Server_Error
|
|
|
+ $error)</methodname>
|
|
|
+ : Establecer un objeto error. Si
|
|
|
+ ya está, este será utilizado como la
|
|
|
+ respuesta cuando se
|
|
|
+ serialize a JSON.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getError()</methodname>: Recuperar el
|
|
|
- objeto error, si lo hubiera.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getError()</methodname>
|
|
|
+ : Recuperar el
|
|
|
+ objeto error, si lo hubiera.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>isError()</methodname>: Si la respuesta es
|
|
|
- una respuesta de error o no.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>isError()</methodname>
|
|
|
+ : Si la respuesta es
|
|
|
+ una respuesta de error o no.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setId($name)</methodname>: Establecer el
|
|
|
+ <para>
|
|
|
+ <methodname>setId($name)</methodname>
|
|
|
+ : Establecer el
|
|
|
identificador de solicitud (de manera que la respuesta
|
|
|
- del cliente pueda coincidir con la solicitud original).
|
|
|
- </para>
|
|
|
+ del
|
|
|
+ cliente pueda coincidir con la solicitud original).
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getId()</methodname>: Recuperar el
|
|
|
- identificador de solicitud.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getId()</methodname>
|
|
|
+ : Recuperar el
|
|
|
+ identificador de solicitud.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setVersion($version)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setVersion($version)</methodname>
|
|
|
+ :
|
|
|
Establecer la versión JSON-RPC con la que deba estar
|
|
|
- conformada la respuesta.</para>
|
|
|
+ conformada la
|
|
|
+ respuesta.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getVersion()</methodname>: Recuperar la
|
|
|
- versión JSON-RPC con la cumple la respuesta.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getVersion()</methodname>
|
|
|
+ : Recuperar la
|
|
|
+ versión JSON-RPC con la cumple la respuesta.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>toJson()</methodname>: Serializar la
|
|
|
+ <para>
|
|
|
+ <methodname>toJson()</methodname>
|
|
|
+ : Serializar la
|
|
|
respuesta a JSON. Si la respuesta es una respuesta de
|
|
|
- error, serializar el objeto error.</para>
|
|
|
+ error,
|
|
|
+ serializar el objeto error.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setServiceMap($serviceMap)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setServiceMap($serviceMap)</methodname>
|
|
|
+ :
|
|
|
Establecer el objeto mapa de servicio para la respuesta.
|
|
|
- </para>
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getServiceMap()</methodname>: Recuperar el
|
|
|
- objeto mapa de servicio, si hubiera alguno.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getServiceMap()</methodname>
|
|
|
+ : Recuperar el
|
|
|
+ objeto mapa de servicio, si hubiera alguno.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
|
|
|
- <para>Una versión específica de <acronym>HTTP</acronym> está disponible a través de
|
|
|
- <classname>Zend_Json_Server_Response_Http</classname>. Esta
|
|
|
- clase enviará las cabeceras <acronym>HTTP</acronym> apropiadas así como serializará
|
|
|
- la respuesta como<acronym>JSON</acronym>.</para>
|
|
|
+ <para>
|
|
|
+ Una versión específica de
|
|
|
+ <acronym>HTTP</acronym>
|
|
|
+ está disponible a través de
|
|
|
+ <classname>Zend_Json_Server_Response_Http</classname>
|
|
|
+ . Esta
|
|
|
+ clase enviará las cabeceras
|
|
|
+ <acronym>HTTP</acronym>
|
|
|
+ apropiadas así como serializará
|
|
|
+ la respuesta como
|
|
|
+ <acronym>JSON</acronym>
|
|
|
+ .
|
|
|
+ </para>
|
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="zend.json.server.details.zendjsonservererror">
|
|
|
<title>Zend_Json_Server_Error</title>
|
|
|
|
|
|
<para>JSON-RPC tiene un formato especial para informar condiciones
|
|
|
- de error. Todos los errores necesitan proporcionar, mínimamente,
|
|
|
- un mensaje de error y un código de error; opcionalmente, pueden
|
|
|
+ de error. Todos los
|
|
|
+ errores necesitan proporcionar, mínimamente,
|
|
|
+ un mensaje de error y un código de
|
|
|
+ error; opcionalmente, pueden
|
|
|
proporcionar datos adicionales, tales como un backtrace.</para>
|
|
|
|
|
|
- <para>Los códigos de error derivan de los recomendados por <ulink
|
|
|
- url="http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php"
|
|
|
- >el proyecto XML-RPC EPI</ulink>.
|
|
|
- <classname>Zend_Json_Server</classname> apropiadamente
|
|
|
+ <para>
|
|
|
+ Los códigos de error derivan de los recomendados por
|
|
|
+ <ulink url="http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php">el
|
|
|
+ proyecto XML-RPC EPI</ulink>
|
|
|
+ .
|
|
|
+ <classname>Zend_Json_Server</classname>
|
|
|
+ apropiadamente
|
|
|
asigna el código sobre la base de la condición de error. Para
|
|
|
- las excepciones de la aplicación, se utiliza el código '-32000'.</para>
|
|
|
+ las
|
|
|
+ excepciones de la aplicación, se utiliza el código '-32000'.
|
|
|
+ </para>
|
|
|
|
|
|
<para>
|
|
|
- <classname>Zend_Json_Server_Error</classname> expone los
|
|
|
- siguientes métodos:</para>
|
|
|
+ <classname>Zend_Json_Server_Error</classname>
|
|
|
+ expone los
|
|
|
+ siguientes métodos:
|
|
|
+ </para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
- <para><methodname>setCode($code)</methodname>: Establece el
|
|
|
+ <para>
|
|
|
+ <methodname>setCode($code)</methodname>
|
|
|
+ : Establece el
|
|
|
código de error; si el código de error no está en el
|
|
|
- rango de aceptación de XML-RPC, -32000 será
|
|
|
- asignado.</para>
|
|
|
+ rango de
|
|
|
+ aceptación de XML-RPC, -32000 será
|
|
|
+ asignado.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getCode()</methodname>: Recuperar el
|
|
|
- actual código de error.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getCode()</methodname>
|
|
|
+ : Recuperar el
|
|
|
+ actual código de error.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setMessage($message)</methodname>:
|
|
|
- Establecer el mensaje de error.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>setMessage($message)</methodname>
|
|
|
+ :
|
|
|
+ Establecer el mensaje de error.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getMessage()</methodname>: Recuperar el
|
|
|
- mensaje de error actual.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getMessage()</methodname>
|
|
|
+ : Recuperar el
|
|
|
+ mensaje de error actual.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setData($data)</methodname>: Establecer el
|
|
|
+ <para>
|
|
|
+ <methodname>setData($data)</methodname>
|
|
|
+ : Establecer el
|
|
|
conjunto de datos auxiliares para calificar más adelante
|
|
|
- el error, tal como un backtrace.</para>
|
|
|
+ el
|
|
|
+ error, tal como un backtrace.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getData()</methodname>: Recuperar
|
|
|
- cualquier auxiliar actual de errores de datos.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getData()</methodname>
|
|
|
+ : Recuperar
|
|
|
+ cualquier auxiliar actual de errores de datos.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>toArray()</methodname>: Mandar el error a
|
|
|
+ <para>
|
|
|
+ <methodname>toArray()</methodname>
|
|
|
+ : Mandar el error a
|
|
|
un array. El array contendrá las claves 'code',
|
|
|
- 'message', y 'data'.</para>
|
|
|
+ 'message', y 'data'.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>toJson()</methodname>: Mandar el error a
|
|
|
- una representación de error JSON-RPC.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>toJson()</methodname>
|
|
|
+ : Mandar el error a
|
|
|
+ una representación de error JSON-RPC.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
</sect3>
|
|
|
@@ -516,286 +758,498 @@ $server->handle();
|
|
|
<sect3 id="zend.json.server.details.zendjsonserversmd">
|
|
|
<title>Zend_Json_Server_Smd</title>
|
|
|
|
|
|
- <para>SMD quiere decir Service Mapping Description, un esquema JSON
|
|
|
- que define cómo un cliente puede interactuar con un servicio web
|
|
|
- en particular. En el momento de escribir esto, la <ulink
|
|
|
+ <para>
|
|
|
+ SMD quiere decir Service Mapping Description, un esquema JSON
|
|
|
+ que define cómo un
|
|
|
+ cliente puede interactuar con un servicio web
|
|
|
+ en particular. En el momento de
|
|
|
+ escribir esto, la
|
|
|
+ <ulink
|
|
|
url="http://groups.google.com/group/json-schema/web/service-mapping-description-proposal"
|
|
|
- >especificación</ulink> todavía no ha sido ratificada
|
|
|
- oficialmente, pero ya está en uso en Dojo toolkit así como en
|
|
|
- otros clientes consumidores de JSON-RPC.</para>
|
|
|
-
|
|
|
- <para>En su aspecto más básico, un SMD indica el método de
|
|
|
- transporte (POST, GET, TCP/IP, etc), el tipo de envoltura de la
|
|
|
- solicitud (generalmente se basa en el protocolo del servidor),
|
|
|
- el objetivo <acronym>URL</acronym> del proveedor del servicio, y
|
|
|
- un mapa de los servicios disponibles. En el caso de JSON-RPC, el
|
|
|
+ >especificación</ulink>
|
|
|
+ todavía no ha sido ratificada
|
|
|
+ oficialmente, pero ya está en uso en Dojo toolkit así
|
|
|
+ como en
|
|
|
+ otros clientes consumidores de JSON-RPC.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ En su aspecto más básico, un SMD indica el método de
|
|
|
+ transporte (POST, GET, TCP/IP,
|
|
|
+ etc), el tipo de envoltura de la
|
|
|
+ solicitud (generalmente se basa en el protocolo del
|
|
|
+ servidor),
|
|
|
+ el objetivo
|
|
|
+ <acronym>URL</acronym>
|
|
|
+ del proveedor del servicio, y
|
|
|
+ un mapa de los servicios disponibles. En el caso de
|
|
|
+ JSON-RPC, el
|
|
|
servicio de mapa es una lista de los métodos disponibles, en el
|
|
|
- que cada método documenta los parámetros disponibles y sus
|
|
|
- tipos, así como los tipos de valores esperados a devolver.</para>
|
|
|
+ que cada
|
|
|
+ método documenta los parámetros disponibles y sus
|
|
|
+ tipos, así como los tipos de
|
|
|
+ valores esperados a devolver.
|
|
|
+ </para>
|
|
|
|
|
|
<para>
|
|
|
- <classname>Zend_Json_Server_Smd</classname> Proporciona un
|
|
|
+ <classname>Zend_Json_Server_Smd</classname>
|
|
|
+ Proporciona un
|
|
|
objeto orientado para construir servicios de mapas. Básicamente,
|
|
|
- pasa los metadatos describiendo el servicio usando mutators, y
|
|
|
- especifica los servicios (métodos y funciones).</para>
|
|
|
+ pasa
|
|
|
+ los metadatos describiendo el servicio usando mutators, y
|
|
|
+ especifica los servicios
|
|
|
+ (métodos y funciones).
|
|
|
+ </para>
|
|
|
|
|
|
- <para>Las descripciones de los servicios son típicamente instancias
|
|
|
- de <classname>Zend_Json_Server_Smd_Service</classname>; también
|
|
|
+ <para>
|
|
|
+ Las descripciones de los servicios son típicamente instancias
|
|
|
+ de
|
|
|
+ <classname>Zend_Json_Server_Smd_Service</classname>
|
|
|
+ ; también
|
|
|
puede pasar toda la información como un array a los diversos
|
|
|
- mutators de servicios en
|
|
|
- <classname>Zend_Json_Server_Smd</classname>, y que
|
|
|
+ mutators de
|
|
|
+ servicios en
|
|
|
+ <classname>Zend_Json_Server_Smd</classname>
|
|
|
+ , y que
|
|
|
instanciará on objeto de servicio por usted. Los objetos de
|
|
|
- servicio contienen información como el nombre del servicio
|
|
|
- (típicamente, la función o el nombre del método), los parámetros
|
|
|
+ servicio contienen
|
|
|
+ información como el nombre del servicio
|
|
|
+ (típicamente, la función o el nombre del
|
|
|
+ método), los parámetros
|
|
|
(nombres, tipos y posición), y el tipo del valor de retorno.
|
|
|
Opcionalmente, cada servicio puede tener su propio objetivo y
|
|
|
- envoltura, aunque esta funcionalidad rara vez es utilizada.</para>
|
|
|
+ envoltura, aunque esta
|
|
|
+ funcionalidad rara vez es utilizada.
|
|
|
+ </para>
|
|
|
|
|
|
<para>
|
|
|
- <classname>Zend_Json_Server</classname> Realmente todo esto
|
|
|
+ <classname>Zend_Json_Server</classname>
|
|
|
+ Realmente todo esto
|
|
|
sucede entre bambalinas para usted, utilizando reflexión sobre
|
|
|
las clases y funciones agregadas; debe crear su propio servicio
|
|
|
- de mapas sólo si necesita brindar funcionalidad personalizada
|
|
|
- que la introspección de clase y función no puede ofrecer.</para>
|
|
|
+ de mapas sólo si
|
|
|
+ necesita brindar funcionalidad personalizada
|
|
|
+ que la introspección de clase y función
|
|
|
+ no puede ofrecer.
|
|
|
+ </para>
|
|
|
|
|
|
- <para>Los métodos disponibles en
|
|
|
- <classname>Zend_Json_Server_Smd</classname> incluyen:</para>
|
|
|
+ <para>
|
|
|
+ Los métodos disponibles en
|
|
|
+ <classname>Zend_Json_Server_Smd</classname>
|
|
|
+ incluyen:
|
|
|
+ </para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
- <para><methodname>setOptions(array $options)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setOptions(array $options)</methodname>
|
|
|
+ :
|
|
|
Establecer un objeto SMD desde un array de opciones.
|
|
|
- Todos los mutators (métodos comenzando con 'set') se
|
|
|
- pueden usar como claves.</para>
|
|
|
+ Todos los mutators
|
|
|
+ (métodos comenzando con 'set') se
|
|
|
+ pueden usar como claves.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setTransport($transport)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setTransport($transport)</methodname>
|
|
|
+ :
|
|
|
Establecer el transporte usado para acceder al servicio;
|
|
|
- únicamente POST es actualmente soportado.</para>
|
|
|
+ únicamente POST es
|
|
|
+ actualmente soportado.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getTransport()</methodname>: Obtener el
|
|
|
- servicio de transporte actual.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getTransport()</methodname>
|
|
|
+ : Obtener el
|
|
|
+ servicio de transporte actual.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setEnvelope($envelopeType)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setEnvelope($envelopeType)</methodname>
|
|
|
+ :
|
|
|
Establecer la envoltura de la solicitud que debería ser
|
|
|
- utilizada para acceder al servicio. Actualmente las
|
|
|
+ utilizada para
|
|
|
+ acceder al servicio. Actualmente las
|
|
|
constantes soportadas son
|
|
|
- <constant>Zend_Json_Server_Smd::ENV_JSONRPC_1</constant>
|
|
|
+ <constant>Zend_Json_Server_Smd::ENV_JSONRPC_1</constant>
|
|
|
y
|
|
|
- <constant>Zend_Json_Server_Smd::ENV_JSONRPC_1</constant>.</para>
|
|
|
+ <constant>Zend_Json_Server_Smd::ENV_JSONRPC_1</constant>
|
|
|
+ .
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getEnvelope()</methodname>: Obtener la
|
|
|
- envoltura de la petición actual.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getEnvelope()</methodname>
|
|
|
+ : Obtener la
|
|
|
+ envoltura de la petición actual.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setContentType($type)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setContentType($type)</methodname>
|
|
|
+ :
|
|
|
Establecer el tipo de contenido que deben utilizar las
|
|
|
- solicitudes (por defecto, es 'application/json»).</para>
|
|
|
+ solicitudes (por
|
|
|
+ defecto, es 'application/json»).
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getContentType()</methodname>: Conseguir
|
|
|
+ <para>
|
|
|
+ <methodname>getContentType()</methodname>
|
|
|
+ : Conseguir
|
|
|
el tipo del contenido actual para las solicitudes al
|
|
|
- servicio.</para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para><methodname>setTarget($target)</methodname>:
|
|
|
- Establecer el punto final de la <acronym>URL</acronym>
|
|
|
- para el servicio.</para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para><methodname>getTarget()</methodname>: Obtener el punto
|
|
|
- final de la <acronym>URL</acronym> para el
|
|
|
- servicio.</para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para><methodname>setId($id)</methodname>: Normalmente, este
|
|
|
- es el punto final de la <acronym>URL</acronym> del
|
|
|
- servicio (igual que el objetivo).</para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para><methodname>getId()</methodname>: Recuperar el ID del
|
|
|
+ servicio.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <methodname>setTarget($target)</methodname>
|
|
|
+ :
|
|
|
+ Establecer el punto final de la
|
|
|
+ <acronym>URL</acronym>
|
|
|
+ para el servicio.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <methodname>getTarget()</methodname>
|
|
|
+ : Obtener el punto
|
|
|
+ final de la
|
|
|
+ <acronym>URL</acronym>
|
|
|
+ para el
|
|
|
+ servicio.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <methodname>setId($id)</methodname>
|
|
|
+ : Normalmente, este
|
|
|
+ es el punto final de la
|
|
|
+ <acronym>URL</acronym>
|
|
|
+ del
|
|
|
+ servicio (igual que el objetivo).
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <methodname>getId()</methodname>
|
|
|
+ : Recuperar el ID del
|
|
|
servicio (normalmente el punto final de la
|
|
|
- <acronym>URL</acronym> del servicio).</para>
|
|
|
+ <acronym>URL</acronym>
|
|
|
+ del servicio).
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setDescription($description)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setDescription($description)</methodname>
|
|
|
+ :
|
|
|
Establecer una descripción del servicio (típicamente
|
|
|
- información narrativa que describe el propósito del
|
|
|
- servicio).</para>
|
|
|
+ información narrativa
|
|
|
+ que describe el propósito del
|
|
|
+ servicio).
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getDescription()</methodname>: Obtener la
|
|
|
- descripción del servicio.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getDescription()</methodname>
|
|
|
+ : Obtener la
|
|
|
+ descripción del servicio.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setDojoCompatible($flag)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setDojoCompatible($flag)</methodname>
|
|
|
+ :
|
|
|
Establecer un flag que indique si el SMD es compatible o
|
|
|
- no con el toolkit de Dojo. Cuando sea verdadero, el <acronym>JSON</acronym>
|
|
|
+ no con el toolkit
|
|
|
+ de Dojo. Cuando sea verdadero, el
|
|
|
+ <acronym>JSON</acronym>
|
|
|
SMD será formateado para cumplir con el formato que
|
|
|
- espera el cliente de Dojo JSON-RPC.</para>
|
|
|
+ espera el cliente de Dojo
|
|
|
+ JSON-RPC.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>isDojoCompatible()</methodname>: Devuelve
|
|
|
+ <para>
|
|
|
+ <methodname>isDojoCompatible()</methodname>
|
|
|
+ : Devuelve
|
|
|
el valor del flag de compatibilidad de Dojo (falso, por
|
|
|
- defecto).</para>
|
|
|
+ defecto).
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>addService($service)</methodname>: Añade
|
|
|
+ <para>
|
|
|
+ <methodname>addService($service)</methodname>
|
|
|
+ : Añade
|
|
|
un servicio al mapa. Puede ser un array de información a
|
|
|
- pasar al constructor de
|
|
|
- <classname>Zend_Json_Server_Smd_Service</classname>,
|
|
|
- o una instancia de esa clase.</para>
|
|
|
+ pasar al
|
|
|
+ constructor de
|
|
|
+ <classname>Zend_Json_Server_Smd_Service</classname>
|
|
|
+ ,
|
|
|
+ o una instancia de esa clase.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>addServices(array $services)</methodname>:
|
|
|
- Agrega múltiples servicios a la vez.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>addServices(array $services)</methodname>
|
|
|
+ :
|
|
|
+ Agrega múltiples servicios a la vez.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setServices(array $services)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setServices(array $services)</methodname>
|
|
|
+ :
|
|
|
Agrega múltiples servicios a la vez, sobreescribiendo
|
|
|
- cualquiera de los servicios previamente establecidos.
|
|
|
- </para>
|
|
|
+ cualquiera de los
|
|
|
+ servicios previamente establecidos.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getService($name)</methodname>: Ontiene el
|
|
|
- servicio por su nombre.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getService($name)</methodname>
|
|
|
+ : Ontiene el
|
|
|
+ servicio por su nombre.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getServices()</methodname>: Obtener todos
|
|
|
- los servicios agregados.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getServices()</methodname>
|
|
|
+ : Obtener todos
|
|
|
+ los servicios agregados.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>removeService($name)</methodname>: Elimina
|
|
|
- un servicio del mapa.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>removeService($name)</methodname>
|
|
|
+ : Elimina
|
|
|
+ un servicio del mapa.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>toArray()</methodname>: Mandar el mapa de
|
|
|
- servicio a un array.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>toArray()</methodname>
|
|
|
+ : Mandar el mapa de
|
|
|
+ servicio a un array.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>toDojoArray()</methodname>: Mandar el mapa
|
|
|
+ <para>
|
|
|
+ <methodname>toDojoArray()</methodname>
|
|
|
+ : Mandar el mapa
|
|
|
de servicio a un array compatible con Dojo
|
|
|
- Toolkit.</para>
|
|
|
+ Toolkit.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>toJson()</methodname>: Mandar el mapa de
|
|
|
- servicio a una representación JSON.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>toJson()</methodname>
|
|
|
+ : Mandar el mapa de
|
|
|
+ servicio a una representación JSON.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
|
|
|
<para>
|
|
|
- <classname>Zend_Json_Server_Smd_Service</classname> tiene los
|
|
|
- siguientes métodos:</para>
|
|
|
+ <classname>Zend_Json_Server_Smd_Service</classname>
|
|
|
+ tiene los
|
|
|
+ siguientes métodos:
|
|
|
+ </para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
- <para><methodname>setOptions(array $options)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setOptions(array $options)</methodname>
|
|
|
+ :
|
|
|
Establecer el estado del objeto dede un array. Cualquier
|
|
|
- mutator (métodos comenzando con 'set') puede ser
|
|
|
- utilizado como una clave y establecerlo mediante este
|
|
|
- método.</para>
|
|
|
+ mutator (métodos
|
|
|
+ comenzando con 'set') puede ser
|
|
|
+ utilizado como una clave y establecerlo
|
|
|
+ mediante este
|
|
|
+ método.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setName($name)</methodname>: Establecer el
|
|
|
+ <para>
|
|
|
+ <methodname>setName($name)</methodname>
|
|
|
+ : Establecer el
|
|
|
nombre del servicio (típicamente, la función o el nombre
|
|
|
- del método).</para>
|
|
|
+ del
|
|
|
+ método).
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getName()</methodname>: Recuperar el
|
|
|
- nombre del servicio.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getName()</methodname>
|
|
|
+ : Recuperar el
|
|
|
+ nombre del servicio.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setTransport($transport)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setTransport($transport)</methodname>
|
|
|
+ :
|
|
|
Establecer el servicio de transporte (actualmente, sólo
|
|
|
- transportes apoyados por
|
|
|
- <classname>Zend_Json_Server_Smd</classname> son
|
|
|
- permitidos).</para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para><methodname>getTransport()</methodname>: Recuperar el
|
|
|
- transporte actual.</para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para><methodname>setTarget($target)</methodname>:
|
|
|
- Establecer el punto final de la <acronym>URL</acronym>
|
|
|
+ transportes apoyados
|
|
|
+ por
|
|
|
+ <classname>Zend_Json_Server_Smd</classname>
|
|
|
+ son
|
|
|
+ permitidos).
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <methodname>getTransport()</methodname>
|
|
|
+ : Recuperar el
|
|
|
+ transporte actual.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <methodname>setTarget($target)</methodname>
|
|
|
+ :
|
|
|
+ Establecer el punto final de la
|
|
|
+ <acronym>URL</acronym>
|
|
|
del servicio (típicamente, este será el mismo que el SMD
|
|
|
- en general, al cual el servicio está agregado).</para>
|
|
|
+ en general, al cual
|
|
|
+ el servicio está agregado).
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getTarget()</methodname>: Obtener el punto
|
|
|
- final de la <acronym>URL</acronym> del servicio.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getTarget()</methodname>
|
|
|
+ : Obtener el punto
|
|
|
+ final de la
|
|
|
+ <acronym>URL</acronym>
|
|
|
+ del servicio.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setEnvelope($envelopeType)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>setEnvelope($envelopeType)</methodname>
|
|
|
+ :
|
|
|
Establecer la envoltura del servicio (actualmente, sólo
|
|
|
- se permiten las envolturas soportadas por
|
|
|
- <classname>Zend_Json_Server_Smd</classname>.</para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para><methodname>getEnvelope()</methodname>: Recuperar el
|
|
|
- tipo de envoltura del servicio.</para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para><methodname>addParam($type, array $options = array(),
|
|
|
- $order = null)</methodname>: Añadir un parámetro
|
|
|
- para el servicio. Por defecto, sólo el tipo de parámetro
|
|
|
+ se permiten las
|
|
|
+ envolturas soportadas por
|
|
|
+ <classname>Zend_Json_Server_Smd</classname>
|
|
|
+ .
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <methodname>getEnvelope()</methodname>
|
|
|
+ : Recuperar el
|
|
|
+ tipo de envoltura del servicio.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <methodname>addParam($type, array $options = array(),
|
|
|
+ $order = null)</methodname>
|
|
|
+ : Añadir un parámetro
|
|
|
+ para el servicio. Por defecto, sólo el tipo de
|
|
|
+ parámetro
|
|
|
es necesario. Sin embargo, también puede especificar el
|
|
|
- orden, así como opciones tales como:</para>
|
|
|
+ orden, así
|
|
|
+ como opciones tales como:
|
|
|
+ </para>
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
- <para><emphasis>name</emphasis>: el nombre del
|
|
|
- parámetro</para>
|
|
|
+ <para>
|
|
|
+ <emphasis>name</emphasis>
|
|
|
+ : el nombre del
|
|
|
+ parámetro
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><emphasis>optional</emphasis>: cuándo el
|
|
|
- parámetro es opcional o no</para>
|
|
|
+ <para>
|
|
|
+ <emphasis>optional</emphasis>
|
|
|
+ : cuándo el
|
|
|
+ parámetro es opcional o no
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><emphasis>default</emphasis>: un valor por
|
|
|
- defecto para el parámetro</para>
|
|
|
+ <para>
|
|
|
+ <emphasis>default</emphasis>
|
|
|
+ : un valor por
|
|
|
+ defecto para el parámetro
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><emphasis>description</emphasis>: texto
|
|
|
- describiendo el parámetro</para>
|
|
|
+ <para>
|
|
|
+ <emphasis>description</emphasis>
|
|
|
+ : texto
|
|
|
+ describiendo el parámetro
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>addParams(array $params)</methodname>:
|
|
|
+ <para>
|
|
|
+ <methodname>addParams(array $params)</methodname>
|
|
|
+ :
|
|
|
Agregar varios parámetros a la vez; cada param debería
|
|
|
- ser un array asociativo conteniendo mínimamente la clave
|
|
|
- 'type' describiendo el tipo de parámetro y,
|
|
|
+ ser un array
|
|
|
+ asociativo conteniendo mínimamente la clave
|
|
|
+ 'type' describiendo el tipo de
|
|
|
+ parámetro y,
|
|
|
opcionalmente la clave 'order'; cualquiera de las otras
|
|
|
- claves serán pasados como <varname>$options</varname> a
|
|
|
- <methodname>addOption()</methodname>.</para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para><methodname>setParams(array $params)</methodname>:
|
|
|
+ claves
|
|
|
+ serán pasados como
|
|
|
+ <varname>$options</varname>
|
|
|
+ a
|
|
|
+ <methodname>addOption()</methodname>
|
|
|
+ .
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <methodname>setParams(array $params)</methodname>
|
|
|
+ :
|
|
|
Establecer muchos parámetros a la vez, sobrescribiendo
|
|
|
- cualquiera de los parámetros existentes.</para>
|
|
|
+ cualquiera de los
|
|
|
+ parámetros existentes.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getParams()</methodname>: Recuperar todos
|
|
|
- los parámetros actualmente establecidos.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getParams()</methodname>
|
|
|
+ : Recuperar todos
|
|
|
+ los parámetros actualmente establecidos.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>setReturn($type)</methodname>: Establecer
|
|
|
- el tipo del valor de retorno del servicio.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>setReturn($type)</methodname>
|
|
|
+ : Establecer
|
|
|
+ el tipo del valor de retorno del servicio.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>getReturn()</methodname>: Obtener el tipo
|
|
|
- del valor de retorno del servicio.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>getReturn()</methodname>
|
|
|
+ : Obtener el tipo
|
|
|
+ del valor de retorno del servicio.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>toArray()</methodname>: Mandar el servicio
|
|
|
- a un array.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>toArray()</methodname>
|
|
|
+ : Mandar el servicio
|
|
|
+ a un array.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
<listitem>
|
|
|
- <para><methodname>toJson()</methodname>: Mandar el servicio
|
|
|
- a una representación <acronym>JSON</acronym>.</para>
|
|
|
+ <para>
|
|
|
+ <methodname>toJson()</methodname>
|
|
|
+ : Mandar el servicio
|
|
|
+ a una representación
|
|
|
+ <acronym>JSON</acronym>
|
|
|
+ .
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
</sect3>
|