XML-RPC

XML-RPC (från engelska  e X tensible M arkup L anguage Remote Procedure Call - XML-remote procedure call  ) är en fjärrproceduranropsstandard / -protokoll som använder XML för att koda sina meddelanden och HTTP som en transportmekanism [1] . Det är stamfadern till SOAP och är exceptionellt lätt att använda. XML-RPC, precis som alla andra Remote Procedure Call-gränssnitt (RPC), definierar en uppsättning standarddatatyper och -kommandon som en programmerare kan använda för att komma åt funktionaliteten hos ett annat program som finns på en annan dator i nätverket .

Historik

XML-RPC-protokollet utvecklades ursprungligen av Dave Winer från UserLand Software i samarbete med Microsoft 1998 . Microsoft fann dock snart att detta protokoll var för förenklat och började utöka dess funktionalitet. Efter flera cykler av utökad funktionalitet dök det system som nu kallas SOAP upp. Senare började Microsoft marknadsföra och implementera SOAP i stor utsträckning, och den ursprungliga XML-RPC förkastades. Men trots att den avvisades av Microsoft, fascinerade XML-RPC-standarden många programmerare med sin extraordinära enkelhet och, på grund av detta, existerar den till denna dag och vinner till och med gradvis popularitet.

Datatyper

Skriv namn Tagg exempel Typbeskrivning
array <array> <data> <value><i4> 1404 </i4></value> <value><string> Vad som helst här </string></value> <value><i4> 1 </i4></value> </data> </array> Uppsättning av värden, inga nycklar
bas64 <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64> Base64 -kodad binär data
booleskt <boolean> 1 </boolean> booleskt värde (0 eller 1)
datum Tid <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601> datum och tid
dubbel <double> -12,53 </double> Dubbla precisionsbråkvärde
heltal <i4> 42 </i4> Heltal
sträng <string> Hej världen! </string> Teckensträng (i samma kodning som hela XML- dokumentet)
struktur <struct> <medlem> <namn> Något </name> <value><i4> 1 </i4></value> </member> <medlem> <name> Något annat </name> < value><i4 > 2 </i4></value> </member> </struct> Uppsättning av värden, med nycklar
noll <noll/> Null (tomt) värde är ett XML-RPC- tillägg

Exempel

Ett typiskt exempel på XML-RPC-begäran:

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

Ett typiskt exempel på ett svar på en XML-RPC-förfrågan:

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

Ett typiskt exempel på ett fel på en XML-RPC-begäran:

<?xml version="1.0"?> <methodResponse> <fault> <value> <struct> <member> <name> faultCode </name> <value><int> 4 </int></value> </ medlem> <medlem> <namn> faultString </name> <värde><string> För många parametrar. </string></value> </member> </struct> </value> </fault> </methodResponse>

I det här fallet kan taggar med en datatyp utelämnas när de överförs från klienten och inte specificeras alls.

Kritik

Senaste kritiker (från 2010 och framåt) av XML-RPC hävdar att RPC-anrop kan göras med vanlig XML, och att XML-RPC inte tillför något värde över XML. Både XML-RPC och XML kräver en datamodell på applikationsnivå, till exempel vilka fältnamn som definieras i XML-schemat, eller parameternamn i XML-RPC. Dessutom använder XML-RPC ungefär 4 gånger så många byte som vanlig XML för att koda samma objekt, vilket i sig är utförligt jämfört med JSON .

Se även

Länkar

  1. Simon St. Laurent, Joe Johnston, Edd Dumbill. (Juni 2001) Programmering av webbtjänster med XML-RPC. O'Reilly. första upplagan.