Node.js: come usare le API JSON di WooCommerce per reperire un listato di prodotti

Node.js: come usare le API JSON di WooCommerce per reperire un listato di prodotti

In questo articolo vedremo come reperire un listato di prodotti di WooCommerce usando le sue API con Node.js.

La gestione delle chiamate alle API è affidata alla nostra classe API. La classe è molto semplice. Inizia richiedendo il modulo Request e definendo le opzioni di base:

'use strict';
 const request = require('request');
 const config = {
    url: 'https://ecommerce.com/wp-json/wc/v2/',
    consumer_key: 'ck_1234',
    consumer_secret: 'cs_1234'
  };

Ora viene il corpo della classe:

class API {
static products() {
    return new Promise( (resolve, reject) => {
        request({
            uri: config.url + 'products/',
            qs: {
                consumer_key: config.consumer_key,
                consumer_secret: config.consumer_secret
            }
        }, (err, response, body) => {
            if(err) {
                reject(err);
            } else {
                resolve(JSON.parse(body));
            }
        });
    });
}   
}    
module.exports = API;

Il metodo statico products() restituisce una Promise che può avere due risultati:

  1. La richiesta ha successo e la Promise si risolve con un array di prodotti in formato JSON.
  2. La richiesta fallisce e la Promise restituisce un errore generato dal modulo Request.

Lo usiamo in questo modo nella route specifica:

'use strict';
// routes/index.js
module.exports = {
    products: (req, res) => {
        req.API.products().then(products => {
           res.render('products', {products: products});
        }).catch(err => {
           res.json(err);
        });
    }
};              
Torna su