XML-RPC

XML-RPC (din limba engleză  e X tensible Markup Language Remote Procedure Call  - XML ​​​​remote procedure call) este un standard / protocol de apel de procedură la distanță care utilizează XML pentru a-și codifica mesajele și HTTP ca mecanism de transport [1] . Este precursorul SOAP și este excepțional de ușor de utilizat. XML-RPC, ca orice altă interfață Remote Procedure Call (RPC), definește un set de tipuri standard de date și comenzi pe care un programator le poate folosi pentru a accesa funcționalitatea unui alt program situat pe alt computer.pe net .

Istorie

Protocolul XML-RPC a fost dezvoltat inițial de Dave Winer de la UserLand Software în colaborare cu Microsoft în 1998 . Cu toate acestea, Microsoft a găsit curând acest protocol prea simplist și a început să-și extindă funcționalitatea. După câteva cicluri de extindere a funcționalității, a apărut sistemul cunoscut acum sub numele de SOAP. Mai târziu, Microsoft a început să facă publicitate pe scară largă și să implementeze SOAP, iar XML-RPC original a fost respins. Dar, în ciuda respingerii sale de către Microsoft, standardul XML-RPC a fascinat mulți programatori prin simplitatea sa extraordinară și, datorită acestui fapt, există până în prezent și chiar câștigă treptat popularitate.

Tipuri de date

Tastați numele Exemplu de etichetă Descriere tip
matrice <matrice> <date> <value><i4> 1404 </i4></value> <value><string> Orice aici </string></value> <value><i4> 1 </i4></value> </date> </array> Matrice de valori, fără chei
baza64 <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64> Date binare codificate Base64
boolean <boolean> 1 </boolean> Valoare booleană (0 sau 1)
data/ora <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601> data si ora
dubla <double> -12,53 </double> Valoare fracțională dublă precizie
întreg <i4> 42 </i4> Întreg
şir <string> Bună lume! </string> Șir de caractere (în aceeași codificare ca întregul document XML )
struct <struct> <member> <name> Ceva </name> <value><i4> 1 </i4></value> </member> <member> <name> Altceva </name> < value><i4 > 2 </i4></value> </member> </struct> Matrice de valori, cu chei
zero <nil/> Valoarea nulă (vide) este o extensie XML-RPC

Exemple

Un exemplu tipic de solicitare XML-RPC:

<?xml version="1.0"?> <methodCall> <methodName> examples.getStateName </methodName> <params> <param> <value><i4> 41 </i4></value> </param> </ params> </methodCall>

Un exemplu tipic de răspuns la o solicitare XML-RPC:

<?xml version="1.0"?> <methodResponse> <params> <param> <value><string> Dakota de Sud </string></value> </param> </params> </methodResponse>

Un exemplu tipic de eroare la o solicitare XML-RPC:

<?xml version="1.0"?> <methodResponse> <fault> <value> <struct> <member> <name> faultCode </name> <value><int> 4 </int></value> </ membru> <member> <name> faultString </name> <value><string> Prea mulți parametri. </string></value> </member> </struct> </value> </fault> </methodResponse>

În acest caz, etichetele cu un tip de date pot fi omise atunci când sunt transmise de la client și nu sunt specificate deloc.

Critica

Criticii recenti (din 2010 încolo) ale XML-RPC susțin că apelurile RPC pot fi efectuate cu XML simplu și că XML-RPC nu adaugă nicio valoare față de XML. Atât XML-RPC, cât și XML necesită un model de date la nivel de aplicație, cum ar fi numele câmpurilor definite în schema XML sau numele parametrilor în XML-RPC. Mai mult decât atât, XML-RPC folosește de aproximativ 4 ori mai mulți octeți decât XML obișnuit pentru a codifica aceleași obiecte, care este în sine verbos în comparație cu JSON .

Vezi și

Link -uri

  1. Simon St. Laurent, Joe Johnston, Edd Dumbill. (iunie 2001) Programare Web Services cu XML-RPC. O'Reilly. prima editie.