Connessione a CouchDB con PHP e Guzzle
Abbiamo visto come connetterci a CouchDB in diversi linguaggi; in tutti i casi abbiamo usato una qualche libreria esterna ad-hoc.
Ma CouchDB, in verità, disponde di una API REST internamente; è quindi possibile eseguire operazioni sul db con delle semplici richieste HTTP e il JSON come formato.
L'esperimento di oggi consiste nel fare queste operazioni con PHP usando Guzzle, che è un client HTTP; senza quindi usare librerie ad-hoc.
Quindi cominciamo con l'installare Guzzle:
$ composer require guzzlehttp/guzzle:^7.0
Qui sotto uno script che eseue due richieste:
- nella prima visualiziamo tutti i db disponibili
- nella seconda tutti i documenti di un db specifico
Per altre operazioni da effettuare, vi basterà guardare la documentazione di CouchDB:
require 'vendor/autoload.php';
use GuzzleHttpClient;
use GuzzleHttpPsr7Request;
$user = 'admin';
$pwd = '9211';
$uri = "http://$user:$pwd@127.0.0.1:5984/";
$client = new Client(['base_uri' => $uri]);
// VISUALIZZO TUTTI I DB
$allDbs = $client->request('GET', '_all_dbs');
$jsonDbs = json_decode($allDbs->getBody()->getContents(), true);
foreach ($jsonDbs as $var) {
echo $var . '<br>';
}
echo "==========<br>";
// CREO UN RECORD SU UN DB
$persone = $client->request('GET', 'persone/_all_docs?include_docs=true');
$jsonPersone = json_decode($persone->getBody()->getContents(), true);
echo 'TOT RIGHE: ' . $jsonPersone['total_rows'] . '<br>';
foreach ($jsonPersone['rows'] as $var) {
echo $var['id'] . ' || ' . $var['doc']['email'] . '<br>';
}
Ovviamente ho testato il tutto con PHP, ma potete farlo in tutti i linguaggi; come avete visto sono solo richieste tramite HTTP.
Enjoy!
php guzzle json couchdb
Commentami!