close

XML-RPC

Přejít na navigaci Přejít na hledání

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í.