XML-RPC

XML-RPC (fra engelsk  e X tensible M arkup L anguage Remote Procedure Call  - XML-remote procedure call) er en remote procedure call standard/ protokol , der bruger XML til at kode sine meddelelser og HTTP som en transportmekanisme [1] . Det er stamfader til SOAP og er usædvanligt let at bruge. XML-RPC definerer ligesom enhver anden Remote Procedure Call-grænseflade (RPC) et sæt standarddatatyper og -kommandoer, som en programmør kan bruge til at få adgang til funktionaliteten af ​​et andet program placeret på en anden computernetværket .

Historie

XML-RPC-protokollen blev oprindeligt udviklet af Dave Winer fra UserLand Software i samarbejde med Microsoft i 1998 . Microsoft fandt dog hurtigt, at denne protokol var for enkel og begyndte at udvide dens funktionalitet. Efter flere cyklusser med udvidelse af funktionalitet dukkede systemet nu kendt som SOAP op. Senere begyndte Microsoft i vid udstrækning at annoncere og implementere SOAP, og den originale XML-RPC blev afvist. Men på trods af dens afvisning af Microsoft, fascinerede XML-RPC-standarden mange programmører med sin ekstraordinære enkelhed og eksisterer på grund af dette den dag i dag og vinder endda gradvist popularitet.

Datatyper

Indtast navn Tag eksempel Type beskrivelse
array <array> <data> <value><i4> 1404 </i4></value> <value><string> Alt her </string></value> <value><i4> 1 </i4></value> </data> </array> Array af værdier, ingen nøgler
base64 <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64> Base64 - kodede binære data
boolesk <boolean> 1 </boolean> Boolesk værdi (0 eller 1)
dato tid <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601> dato og tid
dobbelt <double> -12,53 </double> Dobbelt præcisionsbrøkværdi
heltal <i4> 42 </i4> Heltal
snor <string> Hej verden! </string> Tegnstreng (i samme kodning som hele XML- dokumentet)
struktur <struct> <medlem> <navn> Noget </name> <value><i4> 1 </i4></value> </member> <medlem> <navn> Noget andet </name> < value><i4 > 2 </i4></value> </member> </struct> Matrix af værdier med nøgler
nul <nul/> Null (tom) værdi er en XML-RPC- udvidelse

Eksempler

Et typisk eksempel på en XML-RPC-anmodning:

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

Et typisk eksempel på et svar på en XML-RPC-anmodning:

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

Et typisk eksempel på en fejl på en XML-RPC-anmodning:

<?xml version="1.0"?> <methodResponse> <fault> <value> <struct> <member> <name> faultCode </name> <value><int> 4 </int></value> </ medlem> <medlem> <navn> faultString </name> <value><string> For mange parametre. </string></value> </member> </struct> </value> </fault> </methodResponse>

I dette tilfælde kan tags med en datatype udelades, når de transmitteres fra klienten og slet ikke specificeres.

Kritik

Nylige kritikere (fra 2010 og frem) af XML-RPC hævder, at RPC-kald kan foretages med almindelig XML, og at XML-RPC ikke tilføjer nogen værdi over XML. Både XML-RPC og XML kræver en datamodel på applikationsniveau, såsom hvilke feltnavne der er defineret i XML-skemaet, eller parameternavne i XML-RPC. Ydermere bruger XML-RPC omkring 4 gange så mange bytes som almindelig XML til at kode de samme objekter, hvilket i sig selv er omfattende sammenlignet med JSON .

Se også

Links

  1. Simon St. Laurent, Joe Johnston, Edd Dumbill. (Juni 2001) Programmering af webtjenester med XML-RPC. O'Reilly. første udgave.