|
|
@@ -4,69 +4,74 @@
|
|
|
<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>
|
|
|
+ <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>
|
|
|
+ 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><para>Instancia el objeto servidor</para></listitem>
|
|
|
- <listitem><para>Agrega una o más funciones y/o clases/objetos al objeto
|
|
|
- servidor para</para></listitem>
|
|
|
- <listitem><para>handle() -- maneja -- el requerimiento</para></listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>Instancia el objeto servidor</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>Agrega una o más funciones y/o clases/objetos al objeto
|
|
|
+ servidor para</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>handle() -- maneja -- el requerimiento</para>
|
|
|
+ </listitem>
|
|
|
</itemizedlist>
|
|
|
|
|
|
<para>
|
|
|
- <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>
|
|
|
+ <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>
|
|
|
|
|
|
<itemizedlist>
|
|
|
- <listitem><para>Todos los parámetros y sus tipos de variables esperados</para></listitem>
|
|
|
- <listitem><para>El tipo de variable del valor de retorno</para></listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>Todos los parámetros y sus tipos de variables esperados</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>El tipo de variable del valor de retorno</para>
|
|
|
+ </listitem>
|
|
|
</itemizedlist>
|
|
|
|
|
|
<para>
|
|
|
- <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>
|
|
|
+ <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>
|
|
|
|
|
|
<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
|
|
|
- 'add', 'subtract', 'multiply', y 'divide':
|
|
|
- </para>
|
|
|
+ <para> Primero, definir una clase que queramos exponer vía servidor
|
|
|
+ JSON-RPC. Vamos a la clase 'Calculator', y definir los métodos para
|
|
|
+ 'add', 'subtract', 'multiply', y 'divide': </para>
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
/**
|
|
|
* Calculator - clase de ejemplo para exponer via JSON-RPC
|
|
|
*/
|
|
|
@@ -122,19 +127,15 @@ 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>
|
|
|
+ <para> Ahora, crearemos un script para manejar las peticiones: </para>
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
$server = new Zend_Json_Server();
|
|
|
|
|
|
// Indicar que funcionalidad está disponible:
|
|
|
@@ -144,14 +145,12 @@ $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 HTTP,
|
|
|
- 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 HTTP, y
|
|
|
+ luego especificando algún servidor de metadatos: </para>
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
$server = new Zend_Json_Server();
|
|
|
$server->setClass('Calculator');
|
|
|
|
|
|
@@ -172,14 +171,12 @@ if ('GET' == $_SERVER['REQUEST_METHOD']) {
|
|
|
$server->handle();
|
|
|
]]></programlisting>
|
|
|
|
|
|
- <para>
|
|
|
- Si utiliza el servidor JSON-RPC con Dojo toolkit, también necesitará
|
|
|
- establecer un flag de compatibilidad especial para garantizar
|
|
|
- que los dos interoperen correctamente:
|
|
|
- </para>
|
|
|
+ <para> Si utiliza el servidor JSON-RPC con Dojo toolkit, también
|
|
|
+ necesitará establecer un flag de compatibilidad especial para
|
|
|
+ garantizar que los dos interoperen correctamente: </para>
|
|
|
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
$server = new Zend_Json_Server();
|
|
|
$server->setClass('Calculator');
|
|
|
|
|
|
@@ -203,439 +200,604 @@ $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
|
|
|
- propuesta JSON-RPC; que maneja todas las peticiones y como
|
|
|
- respuesta devuelve un conjunto de datos.
|
|
|
- Tiene los siguientes métodos:
|
|
|
- </para>
|
|
|
+ <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>
|
|
|
|
|
|
<itemizedlist>
|
|
|
- <listitem><para><methodname>addFunction($function)</methodname>: Especifica
|
|
|
- la función de espacio del usuario para agregar al servidor.</para></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><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>: Maneja
|
|
|
- una solicitud JSON-RPC; opcionalmente, pasa un 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></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><para><methodname>autoEmitResponse()</methodname>: Determina si la
|
|
|
- auto-emisión de la respuesta está habilitada.</para></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>addFunction($function)</methodname>:
|
|
|
+ Especifica la función de espacio del usuario para
|
|
|
+ agregar al servidor.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>:
|
|
|
+ Maneja una solicitud JSON-RPC; opcionalmente, pasa un
|
|
|
+ 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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>autoEmitResponse()</methodname>: Determina
|
|
|
+ si la auto-emisión de la respuesta está
|
|
|
+ habilitada.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
</itemizedlist>
|
|
|
</sect3>
|
|
|
|
|
|
<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>.
|
|
|
- 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
|
|
|
- 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>
|
|
|
+ <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
|
|
|
+ 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>
|
|
|
|
|
|
- <para>
|
|
|
- El objeto solicitud tiene los siguientes métodos disponibles:
|
|
|
- </para>
|
|
|
+ <para> El objeto solicitud tiene los siguientes métodos disponibles: </para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
- <listitem><para><methodname>setOptions(array $options)</methodname>: Especifica
|
|
|
- la configuración del objeto. <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 valores, o pueden
|
|
|
- incluir opcionalmente el nombre del parámetro.
|
|
|
- </para></listitem>
|
|
|
- <listitem><para><methodname>addParams(array $params)</methodname>: Agrega
|
|
|
- múltiples parámetros a la vez; proxies a
|
|
|
- <methodname>addParam()</methodname></para></listitem>
|
|
|
- <listitem><para><methodname>setParams(array $params)</methodname>:
|
|
|
- Establece todos los parámetros a la vez; sobrescribe
|
|
|
- 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></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><para><methodname>getMethod()</methodname>: Recupera el método que
|
|
|
- será llamado.</para></listitem>
|
|
|
- <listitem><para><methodname>isMethodError()</methodname>: Determinar si la
|
|
|
- solicitud está malformada o no y si daría como resultado
|
|
|
- un error.</para></listitem>
|
|
|
- <listitem><para><methodname>setId($name)</methodname>: Establecer el
|
|
|
- identificador de solicitud(utilizado por el cliente
|
|
|
- para igualar las solicitudes de respuestas).</para></listitem>
|
|
|
- <listitem><para><methodname>getId()</methodname>: Recuperar el identificador
|
|
|
- de solicitudes.</para></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><para><methodname>getVersion()</methodname>: Recuperar la versión
|
|
|
- de la especificación JSON-RPC utilizados por la solicitud.
|
|
|
- </para></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setOptions(array $options)</methodname>:
|
|
|
+ Especifica la configuración del objeto.
|
|
|
+ <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
|
|
|
+ valores, o pueden incluir opcionalmente el nombre del
|
|
|
+ parámetro. </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>addParams(array $params)</methodname>:
|
|
|
+ Agrega múltiples parámetros a la vez; proxies a
|
|
|
+ <methodname>addParam()</methodname></para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setParams(array $params)</methodname>:
|
|
|
+ Establece todos los parámetros a la vez; sobrescribe
|
|
|
+ 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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getMethod()</methodname>: Recupera el
|
|
|
+ método que será llamado.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>isMethodError()</methodname>: Determinar
|
|
|
+ si la solicitud está malformada o no y si daría como
|
|
|
+ resultado un error.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setId($name)</methodname>: Establecer el
|
|
|
+ identificador de solicitud(utilizado por el cliente para
|
|
|
+ igualar las solicitudes de respuestas).</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getId()</methodname>: Recuperar el
|
|
|
+ identificador de solicitudes.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getVersion()</methodname>: Recuperar la
|
|
|
+ versión de la especificación JSON-RPC utilizados por la
|
|
|
+ solicitud. </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
</itemizedlist>
|
|
|
|
|
|
- <para>
|
|
|
- Una versión específica de HTTP 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 JSON sin procesar vía el método
|
|
|
- <methodname>getRawJson()</methodname>.
|
|
|
- </para>
|
|
|
+ <para> Una versión específica de HTTP 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
|
|
|
+ JSON sin procesar vía el método
|
|
|
+ <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 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>
|
|
|
+ <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>
|
|
|
|
|
|
- <para>
|
|
|
- El objeto respuesta tiene los siguientes métodos disponibles:
|
|
|
- </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></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><para><methodname>setId($name)</methodname>: Establecer el
|
|
|
- identificador de solicitud (de manera que la respuesta
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setId($name)</methodname>: Establecer el
|
|
|
+ identificador de solicitud (de manera que la respuesta
|
|
|
del cliente pueda coincidir con la solicitud original).
|
|
|
- </para></listitem>
|
|
|
- <listitem><para><methodname>getId()</methodname>: Recuperar el identificador
|
|
|
- de solicitud.</para></listitem>
|
|
|
- <listitem><para><methodname>setVersion($version)</methodname>: Establecer la
|
|
|
- versión JSON-RPC con la que deba estar conformada la
|
|
|
- respuesta.</para></listitem>
|
|
|
- <listitem><para><methodname>getVersion()</methodname>: Recuperar la versión
|
|
|
- JSON-RPC con la cumple la respuesta.</para></listitem>
|
|
|
- <listitem><para><methodname>toJson()</methodname>: Serializar la respuesta a
|
|
|
- JSON. Si la respuesta es una respuesta de error,
|
|
|
- serializar el objeto error.</para></listitem>
|
|
|
- <listitem><para><methodname>setServiceMap($serviceMap)</methodname>:
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getId()</methodname>: Recuperar el
|
|
|
+ identificador de solicitud.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setVersion($version)</methodname>:
|
|
|
+ Establecer la versión JSON-RPC con la que deba estar
|
|
|
+ conformada la respuesta.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getVersion()</methodname>: Recuperar la
|
|
|
+ versión JSON-RPC con la cumple la respuesta.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>toJson()</methodname>: Serializar la
|
|
|
+ respuesta a JSON. Si la respuesta es una respuesta de
|
|
|
+ error, serializar el objeto error.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setServiceMap($serviceMap)</methodname>:
|
|
|
Establecer el objeto mapa de servicio para la respuesta.
|
|
|
- </para></listitem>
|
|
|
- <listitem><para><methodname>getServiceMap()</methodname>: Recuperar el objeto
|
|
|
- mapa de servicio, si hubiera alguno.</para></listitem>
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getServiceMap()</methodname>: Recuperar el
|
|
|
+ objeto mapa de servicio, si hubiera alguno.</para>
|
|
|
+ </listitem>
|
|
|
</itemizedlist>
|
|
|
|
|
|
- <para>
|
|
|
- Una versión específica de HTTP está disponible a través de
|
|
|
- <classname>Zend_Json_Server_Response_Http</classname>. Esta clase
|
|
|
- enviará las cabeceras HTTP apropiadas así como serializará la
|
|
|
- respuesta como JSON.
|
|
|
- </para>
|
|
|
+ <para> Una versión específica de HTTP está disponible a través de
|
|
|
+ <classname>Zend_Json_Server_Response_Http</classname>. Esta
|
|
|
+ clase enviará las cabeceras HTTP apropiadas así como serializará
|
|
|
+ la respuesta como JSON. </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
|
|
|
- proporcionar datos adicionales, tales como un backtrace.
|
|
|
- </para>
|
|
|
+ <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
|
|
|
+ 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 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>
|
|
|
+ <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>
|
|
|
|
|
|
<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 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></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><para><methodname>getMessage()</methodname>: Recuperar el mensaje
|
|
|
- de error actual.</para></listitem>
|
|
|
- <listitem><para><methodname>setData($data)</methodname>: Establecer el conjunto
|
|
|
- de datos auxiliares para calificar más adelante el error,
|
|
|
- tal como un backtrace.</para></listitem>
|
|
|
- <listitem><para><methodname>getData()</methodname>: Recuperar cualquier
|
|
|
- auxiliar actual de errores de datos.</para></listitem>
|
|
|
- <listitem><para><methodname>toArray()</methodname>: Mandar el error a un
|
|
|
- array. El array contendrá las claves 'code', 'message',
|
|
|
- y 'data'.</para></listitem>
|
|
|
- <listitem><para><methodname>toJson()</methodname>: Mandar el error a una
|
|
|
- representación de error JSON-RPC.</para></listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getMessage()</methodname>: Recuperar el
|
|
|
+ mensaje de error actual.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setData($data)</methodname>: Establecer el
|
|
|
+ conjunto de datos auxiliares para calificar más adelante
|
|
|
+ el error, tal como un backtrace.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getData()</methodname>: Recuperar
|
|
|
+ cualquier auxiliar actual de errores de datos.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>toArray()</methodname>: Mandar el error a
|
|
|
+ un array. El array contendrá las claves 'code',
|
|
|
+ 'message', y 'data'.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>toJson()</methodname>: Mandar el error a
|
|
|
+ una representación de error JSON-RPC.</para>
|
|
|
+ </listitem>
|
|
|
</itemizedlist>
|
|
|
</sect3>
|
|
|
|
|
|
<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
|
|
|
- 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> 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
|
|
|
+ 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>
|
|
|
|
|
|
<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>
|
|
|
+ <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>
|
|
|
+
|
|
|
+ <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
|
|
|
+ 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
|
|
|
+ (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>
|
|
|
|
|
|
<para>
|
|
|
- <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>
|
|
|
+ <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>
|
|
|
|
|
|
- <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 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 (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>
|
|
|
-
|
|
|
- <para>
|
|
|
- <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>
|
|
|
-
|
|
|
- <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>: Establecer
|
|
|
- un objeto SMD desde un array de opciones. Todos los
|
|
|
- mutators (métodos comenzando con 'set') se pueden usar
|
|
|
- como claves.</para></listitem>
|
|
|
- <listitem><para><methodname>setTransport($transport)</methodname>: Establecer
|
|
|
- el transporte usado para acceder al servicio; únicamente
|
|
|
- POST es actualmente soportado.</para></listitem>
|
|
|
- <listitem><para><methodname>getTransport()</methodname>: Obtener el servicio
|
|
|
- de transporte actual.</para></listitem>
|
|
|
- <listitem><para><methodname>setEnvelope($envelopeType)</methodname>:
|
|
|
- Establecer la envoltura de la solicitud que debería ser
|
|
|
- utilizada para acceder al servicio. Actualmente las
|
|
|
- constantes soportadas son
|
|
|
- <classname>Zend_Json_Server_Smd::ENV_JSONRPC_1</classname> y
|
|
|
- <classname>Zend_Json_Server_Smd::ENV_JSONRPC_1</classname>.</para></listitem>
|
|
|
- <listitem><para><methodname>getEnvelope()</methodname>: Obtener la envoltura
|
|
|
- de la petición actual.</para></listitem>
|
|
|
- <listitem><para><methodname>setContentType($type)</methodname>: Establecer
|
|
|
- el tipo de contenido que deben utilizar las solicitudes
|
|
|
- (por defecto, es 'application/json»).</para></listitem>
|
|
|
- <listitem><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
|
|
|
- (normalmente el punto final de la <acronym>URL</acronym> del servicio).
|
|
|
- </para></listitem>
|
|
|
- <listitem><para><methodname>setDescription($description)</methodname>:
|
|
|
- Establecer una descripción del servicio (típicamente
|
|
|
- información narrativa que describe el propósito del
|
|
|
- servicio).</para></listitem>
|
|
|
- <listitem><para><methodname>getDescription()</methodname>: Obtener la
|
|
|
- descripción del servicio.</para></listitem>
|
|
|
- <listitem><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
|
|
|
- JSON SMD será formateado para cumplir con el formato que
|
|
|
- espera el cliente de Dojo JSON-RPC.</para></listitem>
|
|
|
- <listitem><para><methodname>isDojoCompatible()</methodname>: Devuelve el valor
|
|
|
- del flag de compatibilidad de Dojo (falso, por defecto).
|
|
|
- </para></listitem>
|
|
|
- <listitem><para><methodname>addService($service)</methodname>: Añade un
|
|
|
- servicio al mapa. Puede ser un array de información a
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setTransport($transport)</methodname>:
|
|
|
+ Establecer el transporte usado para acceder al servicio;
|
|
|
+ únicamente POST es actualmente soportado.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getTransport()</methodname>: Obtener el
|
|
|
+ servicio de transporte actual.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setEnvelope($envelopeType)</methodname>:
|
|
|
+ Establecer la envoltura de la solicitud que debería ser
|
|
|
+ utilizada para acceder al servicio. Actualmente las
|
|
|
+ constantes soportadas son
|
|
|
+ <classname>Zend_Json_Server_Smd::ENV_JSONRPC_1</classname>
|
|
|
+ y
|
|
|
+ <classname>Zend_Json_Server_Smd::ENV_JSONRPC_1</classname>.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getEnvelope()</methodname>: Obtener la
|
|
|
+ envoltura de la petición actual.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setContentType($type)</methodname>:
|
|
|
+ Establecer el tipo de contenido que deben utilizar las
|
|
|
+ solicitudes (por defecto, es 'application/json»).</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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 (normalmente el punto final de la
|
|
|
+ <acronym>URL</acronym> del servicio). </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setDescription($description)</methodname>:
|
|
|
+ Establecer una descripción del servicio (típicamente
|
|
|
+ información narrativa que describe el propósito del
|
|
|
+ servicio).</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getDescription()</methodname>: Obtener la
|
|
|
+ descripción del servicio.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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 JSON
|
|
|
+ SMD será formateado para cumplir con el formato que
|
|
|
+ espera el cliente de Dojo JSON-RPC.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>isDojoCompatible()</methodname>: Devuelve
|
|
|
+ el valor del flag de compatibilidad de Dojo (falso, por
|
|
|
+ defecto). </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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></listitem>
|
|
|
- <listitem><para><methodname>addServices(array $services)</methodname>:
|
|
|
- Agrega múltiples servicios a la vez.</para></listitem>
|
|
|
- <listitem><para><methodname>setServices(array $services)</methodname>:
|
|
|
- Agrega múltiples servicios a la vez, sobreescribiendo
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setServices(array $services)</methodname>:
|
|
|
+ Agrega múltiples servicios a la vez, sobreescribiendo
|
|
|
cualquiera de los servicios previamente establecidos.
|
|
|
- </para></listitem>
|
|
|
- <listitem><para><methodname>getService($name)</methodname>: Ontiene el servicio
|
|
|
- por su nombre.</para></listitem>
|
|
|
- <listitem><para><methodname>getServices()</methodname>: Obtener todos los
|
|
|
- servicios agregados.</para></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><para><methodname>toDojoArray()</methodname>: Mandar el mapa de servicio
|
|
|
- a un array compatible con Dojo Toolkit.</para></listitem>
|
|
|
- <listitem><para><methodname>toJson()</methodname>: Mandar el mapa de servicio
|
|
|
- a una representación JSON.</para></listitem>
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getService($name)</methodname>: Ontiene el
|
|
|
+ servicio por su nombre.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getServices()</methodname>: Obtener todos
|
|
|
+ los servicios agregados.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>toDojoArray()</methodname>: Mandar el mapa
|
|
|
+ de servicio a un array compatible con Dojo
|
|
|
+ Toolkit.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>:
|
|
|
- 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></listitem>
|
|
|
- <listitem><para><methodname>setName($name)</methodname>: Establecer el nombre
|
|
|
- del servicio (típicamente, la función o el nombre del
|
|
|
- método).</para></listitem>
|
|
|
- <listitem><para><methodname>getName()</methodname>: Recuperar el nombre del
|
|
|
- servicio.</para></listitem>
|
|
|
- <listitem><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> del servicio (típicamente, este
|
|
|
- será el mismo que el SMD 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></listitem>
|
|
|
- <listitem><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 es necesario.
|
|
|
- Sin embargo, también puede especificar el orden, así como
|
|
|
- opciones tales como:</para>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>setName($name)</methodname>: Establecer el
|
|
|
+ nombre del servicio (típicamente, la función o el nombre
|
|
|
+ del método).</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>getName()</methodname>: Recuperar el
|
|
|
+ nombre del servicio.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ del servicio (típicamente, este será el mismo que el SMD
|
|
|
+ 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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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
|
|
|
+ es necesario. Sin embargo, también puede especificar el
|
|
|
+ orden, así como opciones tales como:</para>
|
|
|
<itemizedlist>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
</itemizedlist>
|
|
|
</listitem>
|
|
|
- <listitem><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, 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>:
|
|
|
- Establecer muchos parámetros a la vez, sobrescribiendo
|
|
|
- cualquiera de los parámetros existentes.</para></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><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></listitem>
|
|
|
- <listitem><para><methodname>toJson()</methodname>: Mandar el servicio a una
|
|
|
- representación JSON.</para></listitem>
|
|
|
+ <listitem>
|
|
|
+ <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,
|
|
|
+ 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>:
|
|
|
+ Establecer muchos parámetros a la vez, sobrescribiendo
|
|
|
+ cualquiera de los parámetros existentes.</para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <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>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para><methodname>toJson()</methodname>: Mandar el servicio
|
|
|
+ a una representación JSON.</para>
|
|
|
+ </listitem>
|
|
|
</itemizedlist>
|
|
|
</sect3>
|
|
|
</sect2>
|
|
|
</sect1>
|
|
|
-<!--
|
|
|
-vim:se ts=4 sw=4 et:
|
|
|
--->
|