XML-RPC

XML-RPC ( englanniksi  e X tensible M arkup L Anguage Remote Procedure Call  - XML-remote procedure call) on etäproseduurikutsun standardi/ protokolla , joka käyttää XML :ää koodaamaan viestinsä ja HTTP :tä siirtomekanismina [1] . Se on SOAP :n edeltäjä ja poikkeuksellisen helppokäyttöinen. XML-RPC, kuten mikä tahansa muu RPC (Remote Procedure Call) -liitäntä, määrittää joukon vakiotietotyyppejä ja -komentoja, joita ohjelmoija voi käyttää päästäkseen toisen verkon toisessa tietokoneessa sijaitsevan ohjelman toimintoihin .

Historia

XML-RPC-protokollan kehitti alun perin UserLand Softwaren Dave Winer yhteistyössä Microsoftin kanssa vuonna 1998 . Microsoft piti kuitenkin pian tätä protokollaa liian yksinkertaisena ja alkoi laajentaa sen toimintoja. Useiden toimintojen laajentamisen jaksojen jälkeen nyt SOAP-nimellä tunnettu järjestelmä ilmestyi. Myöhemmin Microsoft alkoi mainostaa ja toteuttaa SOAPia laajalti, ja alkuperäinen XML-RPC hylättiin. Mutta vaikka Microsoft hylkäsi sen, XML-RPC-standardi kiehtoi monia ohjelmoijia poikkeuksellisella yksinkertaisuudellaan, ja tämän vuoksi se on olemassa tähän päivään asti ja on jopa vähitellen saamassa suosiota.

Tietotyypit

Kirjoita nimi Tag Esimerkki Tyyppi Kuvaus
joukko <taulukko> <data> <value><i4> 1404 </i4></value> <value><string> Kaikki tässä </string></value> <value><i4> 1 </i4></value> </data> </array> Joukko arvoja, ei avaimia
base64 <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64> Base64- koodattu binääridata
boolean <boolean> 1 </boolean> Boolen arvo (0 tai 1)
treffiaika <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601> päivämäärä ja aika
kaksinkertainen <double> -12,53 </double> Kaksinkertainen tarkkuus murtoluku
kokonaisluku <i4> 42 </i4> Kokonaisluku
merkkijono <string> Hei maailma! </string> Merkkijono (samassa koodauksessa kuin koko XML - dokumentti)
struct <struct> <member> <name> Jotain </name> <value><i4> 1 </i4></value> </member> <member> <name> Jotain muuta </name> < value><i4 > 2 </i4></value> </member> </struct> Joukko arvoja avaimilla
nolla <nolla/> Nolla (tyhjä) arvo on XML-RPC- laajennus

Esimerkkejä

Tyypillinen XML-RPC-pyyntöesimerkki:

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

Tyypillinen esimerkki vastauksesta XML-RPC-pyyntöön:

<?xml version="1.0"?> <methodResponse> <params> <param> <value><string> Etelä-Dakota </string></value> </param> </params> </methodResponse>

Tyypillinen esimerkki virheestä XML-RPC-pyynnössä:

<?xml version="1.0"?> <methodResponse> <fault> <value> <struct> <member> <name> faultCode </name> <value><int> 4 </int></value> </ Member> <jäsen> <nimi> faultString </name> <value><string> Liian monta parametria. </string></value> </member> </struct> </value> </fault> </methodResponse>

Tässä tapauksessa tietotyypin tunnisteet voidaan jättää pois, kun ne lähetetään asiakkaalta, eikä niitä määritetä ollenkaan.

Kritiikki

Viimeaikaiset XML-RPC:n kriitikot (vuodesta 2010 lähtien) väittävät, että RPC-kutsut voidaan tehdä pelkällä XML:llä ja että XML-RPC ei tuo mitään lisäarvoa XML:ään verrattuna. Sekä XML-RPC että XML edellyttävät sovellustason tietomallia, kuten mitä kenttien nimet on määritelty XML-skeemassa tai parametrien nimet XML-RPC:ssä. Lisäksi XML-RPC käyttää noin 4 kertaa enemmän tavua kuin tavallinen XML koodaamaan samoja objekteja, mikä on itsessään monisanaista JSONiin verrattuna .

Katso myös

Linkit

  1. Simon St. Laurent, Joe Johnston, Edd Dumbill. (Kesäkuu 2001) Web-palvelujen ohjelmointi XML-RPC:llä. O'Reilly. ensimmäinen painos.