Connessione a CouchDB con PHP e Guzzle

Mattepuffo's logo
Connessione a CouchDB con PHP e Guzzle

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!


Condividi

Commentami!