XML-RPC

XML-RPC (z angličtiny  e X tensible M arkup L jazyk Remote Procedure Call  - XML ​​​​vzdálené volání procedur) je standard/ protokol vzdáleného volání procedur, který používá XML ke kódování svých zpráv a HTTP jako transportní mechanismus [1] . Je předchůdcem SOAP a je výjimečně snadno použitelný. XML-RPC, stejně jako jakékoli jiné rozhraní vzdáleného volání procedur (RPC), definuje sadu standardních datových typů a příkazů, které může programátor použít k přístupu k funkcím jiného programu umístěného na jiném počítači v síti .

Historie

Protokol XML-RPC původně vyvinul Dave Winer z UserLand Software ve spolupráci s Microsoftem v roce 1998 . Microsoft však brzy shledal tento protokol příliš zjednodušeným a začal rozšiřovat jeho funkčnost. Po několika cyklech rozšiřování funkčnosti se objevil systém nyní známý jako SOAP. Později Microsoft začal široce inzerovat a implementovat SOAP a původní XML-RPC bylo odmítnuto. Ale i přes jeho odmítnutí ze strany Microsoftu, standard XML-RPC fascinoval mnoho programátorů svou mimořádnou jednoduchostí a díky tomu existuje dodnes a dokonce si postupně získává na popularitě.

Datové typy

Zadejte název Příklad značky Popis typu
pole <pole> <data> <value><i4> 1404 </i4></value> <value><string> Cokoli zde </string></value> <value><i4> 1 </i4></value> </data> </array> Pole hodnot, žádné klíče
základ 64 <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64> Binární data zakódovaná v Base64
booleovský <boolean> 1 </boolean> Booleovská hodnota (0 nebo 1)
čas schůzky <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601> datum a čas
dvojnásobek <double> -12,53 </double> Zlomková hodnota s dvojnásobnou přesností
celé číslo <i4> 42 </i4> Celé číslo
tětiva <string> Ahoj světe! </string> Řetězec znaků (ve stejném kódování jako celý dokument XML )
strukturovat <struct> <member> <name> Něco </name> <value><i4> 1 </i4></value> </member> <member> <name> Něco jiného </name> < value><i4 > 2 </i4></value> </member> </struct> Pole hodnot s klíči
nula <nula/> Hodnota Null (prázdná) je rozšíření XML-RPC

Příklady

Typický příklad požadavku XML-RPC:

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

Typický příklad odpovědi na požadavek XML-RPC:

<?xml version="1.0"?> <methodResponse> <params> <param> <value><string> Jižní Dakota </string></value> </param> </params> </methodResponse>

Typický příklad chyby v požadavku XML-RPC:

<?xml version="1.0"?> <methodResponse> <fault> <value> <struct> <member> <name> faultCode </name> <value><int> 4 </int></value> </ member> <member> <name> faultString </name> <value><string> Příliš mnoho parametrů. </string></value> </member> </struct> </value> </fault> </methodResponse>

V tomto případě lze tagy s datovým typem při přenosu z klienta vynechat a vůbec je nespecifikovat.

Kritika

Nedávní kritici (od roku 2010) XML-RPC tvrdí, že volání RPC lze provádět pomocí prostého XML a že XML-RPC nepřidává žádnou hodnotu oproti XML. XML-RPC i XML vyžadují datový model na úrovni aplikace, jako jsou názvy polí definované ve schématu XML nebo názvy parametrů v XML-RPC. Navíc XML-RPC používá ke kódování stejných objektů asi 4krát více bajtů než běžný XML, což je samo o sobě ve srovnání s JSON podrobné .

Viz také

Odkazy

  1. Simon St. Laurent, Joe Johnston, Edd Dumbill. (červen 2001) Programování webových služeb pomocí XML-RPC. O'Reilly. první vydání.