Un'API REST (Representational State Transfer), a volte indicata come AP RESTful, è un'API che utilizza le richieste HTTP per accedere e utilizzare le risorse.
Queste risorse sono spesso rappresentate in formato JSON anche se in alcune occasioni vengono utilizzati formato XML, testo e HTML. Le API REST sono diventate un modo standard per le applicazioni di scambiare dati su una rete tramite metodi HTTP come GET, PUT, POST e DELETE. Facilitano la creazione, la lettura, l'aggiornamento e l'eliminazione di risorse comunemente denominate operazioni CRUD.
Questa guida esplora come utilizzare Node. JS per creare una semplice API CRUD Restful.
Cosa devi seguire
Assicurati di avere Node.js installato sul tuo computer locale. Correre nodo -v per verificare se Node. JS è installato. Questo comando dovrebbe restituire il numero di versione.
Imparentato: Come installare Node.js su Windows
Dovresti anche avere un'istanza funzionante del tuo preferito editor di testo (es. Codice VS).
Configurazione del progetto
Crea una cartella per la tua applicazione e vai ad essa. Sul terminale e nella directory appena creata, inizializza pacchetto.json correndo npm init.
$ npm inizializzazione -y
Il pacchetto.json ti aiuterà a installare e gestire i pacchetti npm. Il -y flag crea il file package.json utilizzando le opzioni predefinite senza dover impostare i singoli dettagli. L'output sul tuo terminale dovrebbe assomigliare a questo. Nota che il nome sarà diverso a seconda di come hai chiamato la tua cartella.
Configura il server
Per creare un server, prima installa Express.js e Nodemon. Express.js è un nodo. Js framework progettato per semplificare lo sviluppo di applicazioni Web e API. Lo userai per configurare il server e gli endpoint dell'API. Nodemon d'altra parte è uno strumento di sviluppo che riavvierà il server quando il codice dell'applicazione cambia.
Esegui il comando seguente per installare esprimere e nodomon:
npm esprimo nodemon
Quindi, per creare il tuo server, crea un file e chiamalo server.js quindi aggiungi il seguente codice.
// Richiedi espresso
const express = require("express");
// Inizializza express
const app = express();
cost PORT = 8080;
// analizza JSON
app.use (express.json());
// analizza i dati codificati nell'URL
app.use (express.urlencoded({ esteso: true }));
// crea un server
app.ascolta (PORTA, () => {
console.log(`Server in esecuzione sulla porta ${PORT}`);
});
Nel codice sopra, richiedi express nel tuo server.js file e inizializzarlo. Quindi, configura Express per analizzare i dati con codifica JSON e URL. Infine, crea un server usando il Ascoltare() metodo da Express.
Imparentato: Che cos'è Express.js e perché dovresti usarlo?
Per iniziare: creare un array per archiviare i dati utente
Per motivi di semplicità, non utilizzerai un database ma piuttosto un semplice array utente. In app.js, aggiungi il codice seguente dopo la riga che analizza i dati con codifica URL.
const utenti = [{
id: 1,
nome: "Jane Doe",
età: "22",
},
{
id: 2,
nome: "John Doe",
età: "31",
}];
Imparentato: Come creare un database e una raccolta in MongoDB
Come impostare percorsi in Express.js
Per eseguire operazioni sui tuoi dati, devi impostare il routing. I percorsi determineranno come la tua applicazione risponderà alle richieste fatte a un particolare endpoint. Ogni route ha un metodo HTTP, un URL e una funzione di gestione che gestisce la richiesta e la risposta HTTP. Per impostare i percorsi, aggiungi quanto segue al tuo server.js file dopo il tuo utenti Vettore.
app.post('/create', (req, res) => {
// Crea un utente
});
app.get('/users', (req, res) => {
// Recupera tutti gli utenti
});
app.get('/user/:userID', (req, res) => {
// Restituisce un utente per ID
});
app.put('/user/:userID', (req, res) => {
// Aggiorna un utente per ID
});
app.delete('/delete/:IDutente', (req, res) => {
// Elimina un utente per ID
});
app.delete('/users', (req, res) => {
// Elimina tutti gli utenti
});
Come eseguire operazioni CRUD in Node. Js
È necessario creare le funzioni che manipoleranno i dati dell'utente e restituiranno una risposta in base al percorso abbinato. Queste funzioni creeranno, leggeranno, aggiorneranno ed elimineranno i dati dell'utente.
Imparentato: Come eseguire operazioni CRUD in MongoDB
Come creare un nuovo utente
Per creare un nuovo utente, dovrai:
- Controlla se il corpo della richiesta è vuoto, se lo è, invia una risposta di errore.
- Estrarre i dati dell'utente dal corpo della richiesta.
- Convalida i dati dell'utente.
- Spingere i dati dell'utente nell'array.
Nota che stai usando un array solo per motivi di semplicità. In uno scenario reale, interagiresti con un database.
Modifica il tuo percorso POST come di seguito.
app.post("/create", (req, res) => {
// Controlla se il corpo della richiesta è vuoto
if (!Object.keys (req.body).length) {
restituisce res.status (400).json({
messaggio: "Il corpo della richiesta non può essere vuoto",
});
}
// Usa la destrutturazione degli oggetti per ottenere nome ed età
const { nome, età } = req.body;
se (!nome || !età) {
res.status (400).json({
messaggio: "Assicurati di aver inviato sia il nome che l'età",
});
}
const nuovoUtente = {
id: utenti.lunghezza + 1,
nome,
età,
};
Tentativo {
users.push (nuovo utente);
res.status (201).json({
messaggio: "Creato con successo un nuovo utente",
});
} cattura (errore) {
res.status (500).json({
messaggio: "Impossibile creare utente",
});
}
});
Come leggere gli utenti
Per recuperare tutti gli utenti, restituisci l'array users nella tua risposta.
app.get("/users", (req, res) => {
Tentativo {
res.status (200).json({
utenti
});
} cattura (errore) {
res.status (500).json({
messaggio: "Impossibile recuperare tutti gli utenti",
});
}
});
Se provi questo percorso usando postino, dovresti ricevere l'array di utenti nel corpo della risposta.
Per recuperare un solo utente:
- Ottieni l'ID utente dal parametro URL.
- Uso trovare() per identificare quali dati utente specifici stai richiedendo.
- Restituisci l'utente nella risposta.
app.get("/users/:userID", (req, res) => {
const id = parseInt (req.params.userID);
console.log (id);
Tentativo {
let user = users.find((user) => user.id id);
se (! utente) {
restituisce res.status (404).json({
messaggio: "Utente non trovato",
});
}
res.status (200).json({
utente,
});
} cattura (errore) {
res.status (500).json({
messaggio: "Impossibile recuperare l'utente",
});
}
});
Come aggiornare gli utenti
Per aggiornare l'utente:
- Recupera l'ID utente dall'URL.
- Uso trovare() per verificare se l'utente esiste.
- Uso indice di() per ottenere l'indice dell'utente a cui si fa riferimento.
- Utilizzare l'indice per modificare i dati dell'utente con i dati inviati tramite il corpo della richiesta.
app.put("/users/:userID", (req, res) => {
Tentativo {
const id = parseInt (req.params.userID);
let user = users.find((user) => user.id id);
se (! utente) {
restituisce res.status (404).json({
messaggio: "Utente non trovato",
});
}
const userIDX = users.indexOf (utente);
utenti[userIDX].name = req.body.name || utenti[IDX utente].nome;
utenti[userIDX].age = req.body.age || utenti[userIDX].età;
res.status (200).json({
messaggio: "Utente aggiornato correttamente",
utente,
});
} cattura (errore) {
res.status (500).json({
messaggio: "Impossibile recuperare l'utente",
});
}
});
Come eliminare gli utenti
Puoi scegliere di eliminare un utente o tutti gli utenti.
Per eliminare un utente:
- Recupera l'ID utente dall'URL
- Uso trovare() per verificare se l'utente esiste
- Uso trovaIndice() per ottenere l'indice dell'utente a cui si fa riferimento.
- Uso giuntare() per eliminare l'utente in quell'indice.
app.delete("/users/:userID", (req, res) => {
Tentativo {
const id = req.params.userID;
let userIDX = users.findIndex((user) => user.id id);
se (!IDX utente) {
res.status (404).json({
messaggio: "Utente non trovato",
});
}
users.splice (userIDX, 1);
res.status (200).json({
messaggio: "Utente eliminato con successo",
utenti,
});
} cattura (errore) {
res.status (500).json({
messaggio: "Impossibile eliminare l'utente",
});
}
});
Per eliminare tutti gli utenti, unisci l'intero array.
app.delete("/users", (req, res) => {
Tentativo {
utenti.splice (0, utenti.lunghezza);
res.status (200).json({
messaggio: "Eliminati con successo tutti gli utenti",
utenti,
});
} cattura (errore) {
res.status (500).json({
messaggio: "Impossibile eliminare utenti",
X,
});
}
});
Ulteriori informazioni sulle API RESTful
Questo tutorial illustra come creare un'API RESTful di base in Node. JS. Hai imparato come creare un server Express, impostare percorsi e, infine, creare funzioni di gestione che interagiscono con i tuoi dati tramite richieste/risposte HTTP.
Ci sono tuttavia alcuni argomenti essenziali non trattati qui che dovresti approfondire, incluso come connettere la tua applicazione a un database come MongoDB e come proteggere i percorsi.
MongoDB (da "humongous") è un database multipiattaforma orientato ai documenti utilizzato come alternativa a MySQL. Ma cosa significa?
Leggi Avanti
- Programmazione
- JavaScript
- API
Mary Gathoni è una sviluppatrice di software con la passione per la creazione di contenuti tecnici non solo informativi ma anche coinvolgenti. Quando non sta programmando o scrivendo, le piace uscire con gli amici e stare all'aria aperta.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Clicca qui per iscriverti