Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 54 di 67
  • livello intermedio
Indice lezioni

XML-RPC Web Service con PHP

Scopriamo os'è e come funziona il protocollo XML-RPC (XML Remote Procedure Call) e perché può essere utile nelle applicazioni PHP per i Web service.
Scopriamo os'è e come funziona il protocollo XML-RPC (XML Remote Procedure Call) e perché può essere utile nelle applicazioni PHP per i Web service.
Link copiato negli appunti

Il protocollo XML-RPC (XML Remote Procedure Call) è utilizzato per eseguire delle procedure remote attraverso la Rete. Come per il protocollo SOAP anch'esso è basato su un client che effettua una richiesta ad un server, il server la processa per poi inviare una risposta al client.

La richiesta da parte del client viene effettuata tramite protocollo HTTP/HTTPS ed utilizza come formato di interscambio lo standard XML. La richiesta contiene al suo interno il nome della funzione da eseguire nel server remoto ed eventuali parametri. La risposta del server utilizza anch'essa XML come formato di output.

XML-RPC è quindi composto principalmente da tre elementi:

Elemento Descrizione
XML-RPC data model L'insieme di tipi di dato permessi per il passaggio dei parametri, per i valori di ritorno e per gli errori.
XML-RPC request Una richiesta HTTP in POST contenente il metodo da richiamare ed eventuali parametri.
XML-RPC response La risposta del server contenente un valore di ritorno o un errore.

XML-RPC data model

La specifica XML-RPC definisce 6 tipi di dato primitivo:

Tipo di dato Descrizione Esempi
int o i4 intero di 32-bit compreso tra 2,147,483,648 e 2,147,483,647. <int>32</int>
<i4>32</i4>
double decimale a 64-bit <double>12.213123</double>
<double>-2.432</double>
Boolean true (1) o false (0) <boolean>1</boolean>
<boolean>0</boolean>
string stringa di testo <string>The quick brown fox jumps over the lazy dog</string>
dateTime.iso8601 Data in formato ISO8601: CCYYMMDDTHH:MM:SS <dateTime.iso8601>
20190115T12:11:14
</dateTime.iso8601>
base64 Binario codificato in Base 64 <base64>VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZw==</base64>

Alcuni esempi di incapsulamento dei tipo di dato primitivo:

<value>
    <i4>100</i4>
</value>
<value>
    <double>21.2131</double>
</value>
<value>
    <dateTime.iso8601>20190115T12:11:14</dateTime.iso8601>
</value>

Tali dati vengono incapsulati sempre all'interno di un tag XML <value>. I dati primitivi possono essere combinati all'interno di altri due tipi di dato complessi:

Tipo di dato Descrizione
array Contiene un insieme di dati primitivi in maniera sequenziale.
struct Rappresenta un insieme di dati primitivi composti da una coppia chiave/valore.

Vediamo ora un po' di esempi di come rappresentare gli array e le strutture:

<value>
   <array>
      <data>
         <value><string>Un</string></value>
         <value><string>array</string></value>
         <value><string>di</string></value>
         <value><string>stringhe</string></value>
      </data>
   </array>
</value>
<value>
   <array>
      <data>
         <value><double>12.4312</double></value>
         <value><i4>2</i4></value>
         <value><string>stringhe</string></value>
         <value><boolean>1</boolean></value>
      </data>
   </array>
</value>
<value>
   <struct>
      <member>
         <name>keyName</name>
         <value><string>value</string></value>
      </member>
      <member>
         <name>keyName2</name>
         <value><i4>12</i4></value>
      </member>
   </struct>
</value>

Ora che abbiamo visto come rappresentare i tipi di dato supportati da XML-RPC, nel prossimo capitolo vedremo come costruire una richiesta da inviare ad un server che supporta tale protocollo.


Ti consigliamo anche