XML-RPC

XML-RPC (del inglés  eXtensible Markup L anguage Remote Procedure Call  - Llamada a procedimiento remoto XML) es un estándar / protocolo de llamada a procedimiento remoto que utiliza XML para codificar sus mensajes y HTTP como mecanismo de transporte [1] . Es el progenitor de SOAP y es excepcionalmente fácil de usar. XML-RPC, como cualquier otra interfaz de llamada a procedimiento remoto (RPC), define un conjunto de tipos de datos y comandos estándar que un programador puede usar para acceder a la funcionalidad de otro programa ubicado en otra computadora.en la red

Historia

El protocolo XML-RPC fue desarrollado originalmente por Dave Winer de UserLand Software en colaboración con Microsoft en 1998 . Sin embargo, Microsoft pronto encontró este protocolo demasiado simplista y comenzó a expandir su funcionalidad. Después de varios ciclos de expansión de la funcionalidad, apareció el sistema ahora conocido como SOAP. Más tarde, Microsoft comenzó a publicitar e implementar ampliamente SOAP, y el XML-RPC original fue rechazado. Pero a pesar de su rechazo por parte de Microsoft, el estándar XML-RPC fascinó a muchos programadores con su extraordinaria simplicidad y, debido a esto, existe hasta el día de hoy e incluso está ganando popularidad gradualmente.

Tipos de datos

Escribe un nombre Ejemplo de etiqueta Descripción del tipo
formación <matriz> <datos> <valor><i4> 1404 </i4></valor> <value><string> Cualquier cosa aquí </string></value> <valor><i4> 1 </i4></valor> </datos> </matriz> Matriz de valores, sin claves
base64 <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64> Datos binarios codificados en Base64
booleano <booleano> 1 </booleano> Valor booleano (0 o 1)
fecha y hora <fechaHora.iso8601> 19980717T14:08:55 </fechaHora.iso8601> fecha y hora
doble <doble> -12.53 </doble> Valor fraccionario de precisión doble
entero <i4> 42 </i4> Entero
cuerda <string> ¡Hola Mundo! </cadena> Cadena de caracteres (en la misma codificación que el documento XML completo )
estructura <estructura> <miembro> <nombre> Algo </nombre> <valor><i4> 1 </i4></valor> </miembro> <miembro> <nombre> Algo más </nombre> <valor><i4 > 2 </i4></valor> </miembro> </estructura> Matriz de valores, con claves
nulo <cero/> El valor nulo (vacío) es una extensión XML-RPC

Ejemplos

Un ejemplo típico de solicitud XML-RPC:

<?xml version="1.0"?> <methodCall> <methodName> ejemplos.getStateName </methodName> <params> <param> <value><i4> 41 </i4></value> </param> </ params> </llamada al método>

Un ejemplo típico de una respuesta a una solicitud XML-RPC:

<?xml version="1.0"?> <methodResponse> <params> <param> <value><string> Dakota del Sur </string></value> </param> </params> </methodResponse>

Un ejemplo típico de un error en una solicitud XML-RPC:

<?xml version="1.0"?> <métodoRespuesta> <falla> <valor> <estructura> <miembro> <nombre> código de falla </nombre> <valor><int> 4 </int></valor> </ miembro> <miembro> <nombre> cadena de error </nombre> <valor><cadena> Demasiados parámetros. </string></value> </member> </struct> </value> </fault> </methodResponse>

En este caso, las etiquetas con un tipo de datos se pueden omitir cuando se transmiten desde el cliente y no se especifican en absoluto.

Crítica

Los críticos recientes (desde 2010 en adelante) de XML-RPC argumentan que las llamadas RPC se pueden realizar con XML simple y que XML-RPC no agrega valor sobre XML. Tanto XML-RPC como XML requieren un modelo de datos de nivel de aplicación, como qué nombres de campo se definen en el esquema XML o nombres de parámetros en XML-RPC. Además, XML-RPC usa alrededor de 4 veces más bytes que XML normal para codificar los mismos objetos, lo cual es detallado en comparación con JSON .

Véase también

Enlaces

  1. ↑ Calle Simón. Laurent, Joe Johnston, Edd Dumbill. (Junio ​​2001) Programación de Servicios Web con XML-RPC. O´Reilly. primera edición.