XML-RPC

Az XML-RPC (az angol nyelvből  e X tensible M arkup L Anguage Remote Procedure Call - XML ​​Remote Procedure Call  ) egy távoli eljáráshívás szabvány/ protokoll , amely XML -t használ üzenetei kódolására, a HTTP -t pedig szállítási mechanizmusként [1] . Ez a SOAP elődje, és rendkívül könnyen használható. Az XML-RPC, mint bármely más távoli eljáráshívás (RPC) interfész, szabványos adattípusokat és parancsokat határoz meg, amelyek segítségével a programozó hozzáférhet a hálózat másik számítógépén található másik program funkcióihoz .

Történelem

Az XML-RPC protokollt eredetileg Dave Winer, a UserLand Software fejlesztette ki a Microsofttal együttműködve 1998 - ban . A Microsoft azonban hamarosan túlságosan leegyszerűsítőnek találta ezt a protokollt, és elkezdte bővíteni funkcionalitását. A funkcionalitás bővítésének több ciklusa után megjelent a SOAP néven ismert rendszer. Később a Microsoft elkezdte széles körben hirdetni és megvalósítani a SOAP-ot, és az eredeti XML-RPC-t elutasították. De annak ellenére, hogy a Microsoft elutasította, az XML-RPC szabvány sok programozót lenyűgözött rendkívüli egyszerűségével, és ennek köszönhetően a mai napig létezik, sőt fokozatosan egyre népszerűbb.

Adattípusok

Írja be a nevet Címke példa Típus Leírás
sor <tömb> <adat> <value><i4> 1404 </i4></value> <value><string> Bármi itt található </string></value> <value><i4> 1 </i4></value> </data> </array> Értékek tömbje, kulcsok nélkül
alap64 <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64> Base64 kódolású bináris adatok
logikai érték <boolean> 1 </boolean> Logikai érték (0 vagy 1)
dátum idő <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601> dátum és idő
kettős <double> -12,53 </double> Dupla pontosságú törtérték
egész szám <i4> 42 </i4> Egész szám
húr <string> Hello World! </string> Karakterlánc (ugyanabban a kódolásban, mint a teljes XML - dokumentum)
struct <struct> <member> <name> Valami </name> <value><i4> 1 </i4></value> </member> <member> <name> Valami más </name> < value><i4 > 2 </i4></value> </member> </struct> Értékek tömbje, kulcsokkal
nulla <nil/> A nulla (üres) érték egy XML-RPC kiterjesztés

Példák

Tipikus XML-RPC kérés példa:

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

Tipikus példa egy XML-RPC kérésre adott válaszra:

<?xml version="1.0"?> <methodResponse> <params> <param> <value><string> Dél-Dakota </string></value> </param> </params> </methodResponse>

Tipikus példa egy XML-RPC kérés hibájára:

<?xml version="1.0"?> <methodResponse> <fault> <value> <struct> <member> <name> faultCode </name> <value><int> 4 </int></value> </ Member > <member> <name> faultString </name> <value><string> Túl sok paraméter. </string></value> </member> </struct> </value> </fault> </methodResponse>

Ebben az esetben az adattípusú címkék elhagyhatók, amikor a klienstől továbbítják, és egyáltalán nem adják meg.

Kritika

Az XML-RPC legújabb kritikusai (2010-től) azzal érvelnek, hogy az RPC-hívások egyszerű XML-lel is indíthatók, és az XML-RPC nem ad több értéket az XML-hez képest. Mind az XML-RPC, mind az XML alkalmazásszintű adatmodellt igényel, például, hogy milyen mezőnevek vannak meghatározva az XML-sémában, vagy paraméternevek az XML-RPC-ben. Ezenkívül az XML-RPC körülbelül 4-szer annyi bájtot használ, mint a normál XML ugyanazon objektumok kódolásához, ami a JSON -hoz képest maga is bőbeszédű .

Lásd még

Linkek

  1. Simon St. Laurent, Joe Johnston, Edd Dumbill. (2001. június) Webszolgáltatások programozása XML-RPC-vel. O'Reilly. első kiadás.