XML-RPC
XML-RPC este un protocol folosit în informatică care vă permite să executați apeluri către procedurile de la distanță ( RPC ) prin Internet .
Acest protocol se bazează pe standardul XML pentru a codifica cererea care este transmisă prin protocolul HTTP sau HTTPS . În ciuda simplității sale, vă permite să transmiteți structuri complexe de date, să solicitați executarea acestora și să obțineți rezultatul înapoi.
Utilizare
XML-RPC funcționează prin trimiterea unei cereri HTTP către serverul care implementează protocolul. Clientul în acest caz este de obicei un software care dorește să invoce o singură metodă pe un sistem la distanță. Mai mulți parametri de intrare pot fi transferați metodei de la distanță și este returnată o singură valoare de returnare. Tipurile de parametri vă permit să încadrați parametrii înșiși în liste și hărți, astfel încât structurile mai mari să poată fi transportate. Prin urmare, XML-RPC poate fi folosit pentru a transporta obiecte sau structuri atât ca parametri de intrare, cât și pentru a returna valorile de ieșire.
„Identificarea” clientului în scopuri de autorizare poate fi realizată folosind binecunoscutele metode de securitate HTTP. Autentificarea de bază a accesului este utilizată pentru identificare , în timp ce HTTPS este utilizat atunci când este necesară identificarea (prin certificate) și mesajele criptate. Cu toate acestea, ambele metode pot fi combinate. Spre deosebire de REST , unde sunt transmise „reprezentări de resurse” (documente), XML-RPC este conceput pentru a „invoca metode”.
XML-RPC este mai ușor de utilizat și de înțeles decât SOAP deoarece:
- Permite o singură modalitate de a serializa metodele, în schimb SOAP definește multe codificări diferite.
- Are un model de securitate mai simplu.
- Nu necesită (și nici nu acceptă) crearea descrierilor de servicii WSDL , deși XRDL oferă un subset simplu al funcționalității oferite de WSDL.
JSON-RPC este foarte asemănător cu XML-RPC, principala diferență este că datele sunt încapsulate mai degrabă în pachete JSON decât în XML.
Tipuri de date
Cele mai comune tipuri de date pot fi convertite în echivalentul lor XML, conform exemplelor prezentate mai jos:
| Nume | Exemplu | Descriere |
|---|---|---|
| matrice |
<array>
<data>
<value> <i4> 1404 </i4> </value>
<value> <string> Ceva aici </string> </value>
<value> <i4> 1 </i4> </ value>
</data>
</array>
|
Matrice non-asociativă (fără cheie). |
| baza64 |
<base64> eW91IGNhbid0IHJlYWQgdGhpcyE = </base64>
|
Date binare codificate Base64 |
| boolean |
<boolean> 1 </boolean>
|
Boolean (0 sau 1) |
| data/ora |
<dateTime.iso8601> 19980717T14: 08: 55 </dateTime.iso8601>
|
Data și ora în format ISO 8601 |
| dubla |
<double> -12,53 </double>
|
Număr dublu , în virgulă mobilă |
| întreg |
<int> 42 </int>
sau 42 _ _
|
Număr întreg |
| şir |
<string> Bună lume! </string>
sau Salut Lume!
|
Șir de caractere . Trebuie să respecte regulile de codificare XML. |
| struct |
<struct>
<member>
<name> foo </name>
<value> <i4> 1 </i4> </value>
</member>
<member>
<name> bar </name>
<value> <i4> 2 </i4> </value>
</member>
</struct>
|
Matrice asociativă |
| zero |
<nil />
|
Valoare nulă |
Exemple
Un exemplu de solicitare tipică XML-RPC ar putea fi:
<? xml version = "1.0"?>
<methodCall>
<methodName> examples.getStateName </methodName>
<params>
<param>
<value> <i4> 40 </i4> </value>
</param>
</ params>
</methodCall>
Dacă cererea trece, XML-RPC va produce un răspuns de genul:
<? xml version = "1.0"?>
<methodResponse>
<params>
<param>
<value> <string> Dakota de Sud </string> </value>
</param>
</params>
</methodResponse>
În caz contrar, răspunsul va fi ca:
<? xml version = "1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name> faultCode </name>
<value> <int> 4 </int> </value>
</ membru>
<member>
<name> faultString </name>
<value> <string> Prea mulți parametri. </string> </value>
</member>
</struct>
</value>
</fault>
</methodResponse>