Documentação

O que XML-RPC?

XML-RPC é um protocolo de chamada de procedimento remoto (RPC) que usa XML para codificar as chamadas de procedimento e HTTP como o transporte para essas chamadas. Ele permite que os programas chamem funções que estão em um servidor remoto, passando dados entre o cliente e o servidor em formato XML.

O XML-RPC foi projetado para ser simples e eficiente. Ele define como as requisições e respostas devem ser estruturadas, permitindo que diferentes plataformas e linguagens de programação se comuniquem entre si. As requisições consistem em uma chamada de método e os parâmetros que devem ser passados, enquanto as respostas contêm o valor de retorno ou um erro, caso ocorra.

Por ser leve e fácil de implementar, o XML Remote Procedure Call é frequentemente usado em integração de sistemas, serviços web e aplicações que necessitam de comunicação remota. No entanto, com o tempo, outros protocolos como JSON-RPC e RESTful APIs se tornaram mais populares devido à simplicidade e ao uso mais comum do JSON, que geralmente é mais fácil de manipular do que XML.

O que é XML-RPC?#

XML-RPC (Remote Procedure Call) é um protocolo de comunicação que permite a troca de informações entre sistemas distribuídos na internet. Ele utiliza a linguagem XML para codificar as mensagens e o protocolo HTTP para realizar chamadas de procedimentos remotos. Essa tecnologia foi desenvolvida para facilitar a integração entre diferentes plataformas e linguagens de programação, permitindo que sistemas heterogêneos possam se comunicar de forma eficiente.

Características do XML-RPC#

  1. Simplicidade: O XML-RPC utiliza uma estrutura simples de chamadas de procedimentos remotos, o que facilita a implementação e o entendimento do protocolo.
  2. Interoperabilidade: Permite a comunicação entre sistemas desenvolvidos em diferentes linguagens de programação e plataformas, possibilitando a integração de sistemas heterogêneos.
  3. Extensibilidade: O protocolo permite a adição de novos tipos de dados e funcionalidades através da definição de novos métodos e estruturas XML.
  4. Segurança: Embora não tenha recursos nativos para autenticação ou criptografia, o Remote Procedure Call pode ser utilizado em conjunto com outros protocolos de segurança, como o HTTPS, para garantir a confidencialidade e integridade das informações transmitidas.

Exemplos de Uso do XML-RPC#

  1. Integração de Sistemas: O XML-RPC pode ser utilizado para integrar sistemas desenvolvidos em diferentes linguagens, facilitando a troca de informações e a execução de procedimentos remotos.
  2. Desenvolvimento de APIs: É comum usar o Remote Procedure Call para desenvolver APIs que permitem a comunicação entre diferentes sistemas e serviços.
  3. Automatização de Tarefas: Pode ser empregado na automatização de tarefas, como atualizações em sites e blogs, através da execução remota de procedimentos.
  4. Integração com Sistemas Legados: O XML-RPC é útil para integrar sistemas legados, permitindo comunicação entre sistemas mais antigos e modernos.

Exemplo de cliente#

Aqui está o código que faz uma chamada XML-RPC simples em um aplicativo Node.js.

const xmlrpc = requer ("davexmlrpc");

const urlEndpoint = "http://betty.userland.com/rpc2";
const verbo = "exemplos.getStateName";
const params = [5]; //uma matriz contendo um elemento, o número 5
const format = "xml"; //também pode ser "json"

xmlrpc.client (urlEndpoint, verbo, parâmetros, formato, função (erro, dados) {
    se (errar) {
        console.log ("err.mensagem == " + err.mensagem);
        }
    outro {
        console.log (JSON.stringify (dados));
        }
    });

Ele envia uma chamada para o servidor de demonstração, betty.userland.com.

O procedimento que ele chama é "examples.getStateName", com um único parâmetro, o número 5.

A chamada será feita em XML (também pode usar JSON se soubermos que o servidor suporta).

Quando o servidor retorna, o retorno de chamada recebe o objeto de erro padrão do Node no primeiro parâmetro e, se não houver erro, os dados retornados via XML-RPC no segundo parâmetro.

Servidor de exemplo#

Aqui está o código para um servidor XML-RPC simples.

const xmlrpc = requer ("davexmlrpc");

var configuração = {
    porto: 1417,
    xmlRpcPath: "/rpc2"
    }

xmlrpc.startServerOverHttp (config, função (solicitação) {
    alternar (solicitar.verbo) {
        caso "maiúsculo":
            se (request.params.length > 0) {
                solicitação.returnVal (indefinido, solicitação.params [0].toUpperCase ());
                }
            outro {
                request.returnVal ({message: "Deve haver pelo menos um parâmetro."});
                }
            return (true); //nós lidamos com isso
        }
    return (false); //nós não lidamos com isso
    });

Aqui está o pseudocódigo que chama este serviço. Ele retorna THIS IS A TEST.

["xmlrpc://localhost:1417/rpc2"].uppercase ("este é um teste")

Conclusão:#

Em resumo, o XML-RPC é um protocolo que facilita a comunicação entre diferentes sistemas utilizando XML sobre HTTP, apresentando características como simplicidade, interoperabilidade, extensibilidade e segurança.

Não é a solução que você está procurando?

Por favor confira outros artigos