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:
- La richiesta ha successo e la Promise si risolve con un array di prodotti in formato JSON.
- 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);
});
}
};