Scrivere dati
Finora sono stati sviluppati route per leggere i dati per l’API dei prodotti Tailwind Traders. Tuttavia, è necessario aggiungere anche i prodotti.
In questa unità, vengono illustrati i diversi metodi che è possibile usare per aggiungere o aggiornare i prodotti e vengono mostrati esempi di implementazione del codice. Nell'unità successiva, si modificherà il codice dell'applicazione per aggiungere nuovi prodotti e aggiornare quelli esistenti.
Informazioni su come scrivere dati nell'API
Per scrivere i dati, usare un metodo HTTP per indicare se i dati sono nuovi o un aggiornamento di quelli esistenti.
I metodi HTTP più comuni sono:
metodo | Descrizione |
---|---|
POST |
Creare una nuova risorsa. |
PUT |
Aggiornare una risorsa esistente. |
PATCH |
Aggiorna una parte di una risorsa esistente. |
PUT
e PATCH
sono simili. La differenza è che PUT
sostituisce l'intera risorsa. PATCH
sostituisce solo le proprietà specificate nel corpo della richiesta.
Informazioni su come configurare l'app per ricevere i dati
Per ricevere dati nell’applicazione Web, è possibile configurare Express in base al formato dei dati in ingresso, ad esempio HTML o JSON. La conversione e la configurazione dei dati sono passaggi comuni, indipendentemente dal formato dei dati.
Nota
I dati vengono inviati tramite il corpo della richiesta.
Importare un parser del corpo. Per convertire i dati in ingresso in un formato leggibile, importare la libreria
body-parser
installata con Express:let bodyParser = require('body-parser');
Configurare il tipo di dati. Configurare Express in modo da analizzare i dati del corpo in ingresso nel formato previsto. Il codice seguente converte i dati in JSON:
app.use(bodyParser.json({ extended: false }));
I dati inviati dal client sono disponibili in req.body
. È possibile leggere i dati e inserirli nel database.
Informazioni su come inserire un nuovo prodotto
Dopo aver configurato un'app per ricevere dati, si è pronti a creare il codice per inserire i dati. Ecco un esempio di codice che inserisce nuovi prodotti nell'archivio dati dell'applicazione Tailwind Trader:
// Insert a new product
app.post('/products', (req, res) => {
const newProduct = req.body;
newProduct.id = products.length + 1;
products.push(newProduct);
res.status(201).json(newProduct);
});
Per inserire un nuovo prodotto, chiamare questa API con una richiesta POST per /products
con un corpo JSON. Ad esempio:
{
"name": "The Hobbit",
"author": "J.R.R. Tolkien"
}
Informazioni su come aggiornare l'intero prodotto
Oltre ad aggiungere di nuovi prodotti, Tailwind Traders deve poter sostituire i dati dei prodotti esistenti. Ecco un esempio di codice che gestisce PUT
richieste:
app.put('/products/:id', (req, res) => {
const id = parseInt(req.params.id);
const updatedProduct = req.body;
const index = products.findIndex(product => product.id === id);
if (index !== -1) {
products[index] = updatedProduct;
res.json(updatedProduct);
} else {
res.status(404).send('Product not found');
}
});
Per aggiornare un prodotto, chiamare questa API con una richiesta PUT per /products/:id
con un corpo JSON. Ad esempio:
{
"id": 1,
"name": "The Hobbit",
"author": "J.R.R. Tolkien"
}
Informazioni su come aggiornare parte di un prodotto
È anche necessario poter sostituire una parte dei dati di un prodotto anziché tutti. Ecco un esempio di codice, che gestisce PATCH
richieste:
app.patch('/products/:id', (req, res) => {
const id = parseInt(req.params.id);
const updates = req.body;
const index = products.findIndex(product => product.id === id);
if (index !== -1) {
// overwrite existing properties with updates
products[index] = {...products[index], ...updates};
res.json(products[index]);
} else {
res.status(404).send('Product not found');
}
});
Per aggiornare una parte specifica di un prodotto, chiamare questa API con una richiesta PATCH per /products/:id
con un corpo JSON. Ad esempio:
{
"author": "J.R.R. Tolkien"
}