
| Qui accanto trovate il riferimento per poter acquistare il telefono ad un prezzo davvero vantaggioso online su Amazon. |
In questo post voglio mostrarvi quanto sia semplice implementare dei "WebService" in PHP usando la notazione Json per lo scambio dati (molto di moda ma anche molto semplice ed intuitiva).
Ho preso come esempio quello che ho realizzato per questo sito, di seguito trovate del codice di prova sia per la parte client (il chiamante) sia per la parte server (il fornitore del servizio). In questo esempio voglio interagire con il servizio collegato al motore di ricerca del mio sito: come potete notare infatti nella parte client creo una semplice HttpRequest tramite la quale passo in POST le parole chiave che voglio cercare, nella parte server invece passo la richiesta al motore di ricerca e mi preoccupo solo di fare l'encoding Json prima di inviare l'effettiva risposta.
CLIENT
$request = new HttpRequest('http://edoardo.torreggiani.net/services/search/search.php', HttpRequest::METH_POST);
$request->setPostFields(array('text' => 'something to search for..'));
try
{
$request->send();
$response = $request->getResponseBody();
$json = json_decode($response);
// Have fun with $json object!
}
catch (Exception $ex)
{
// Manage exception
echo $ex;
}
SERVER
// Call something to retrieve data from DB passing caller's argument
$list = SearchUtils::searchWebService($_POST['text']);
if(!$list)
{
// Error output
$list = array('result' => false);
}
// Encode and return the result
echo json_encode($list);
CLIENT OUPUT EXAMPLE
{"0":{"id":"14",
"path":"lo0.jpg",
"alt":"london",
"title":"London",
"pubblicato":"1",
"scaduto":"0",
"type":"image"}}
Qui sopra ho inserito l'effettivo output del servizio per la ricerca della parola chiave "london". La notazione Json mostra la struttura con la quale ho gestito le immagini potete notare attributi classici di un'oggetto di questo tipo come: id, path, title...
Un'ultima cosa significativa è lo "0" iniziale del Json questo sta a sgnificare che i dati trasmessi sono racchiusi in una lista (in questo caso di un singolo elemento) la stessa lista che è stata codificata nella parte server. Per completezza aggiungo il riferimento alla sezione HTTP del Php dove potete trovare altri esempi e dettagli, inoltre vi ricordo che nelle installazioni standard potrebbe non essere compresa quindi se volete provare a divertirvi prima assicuratevi di avere installato tutti i componenti necessari.