![]() |
Nel precedente articolo abbiamo visto cos’è un’API (Application Programming Interface) e come permette a diverse applicazioni di comunicare tra loro. In questo articolo entriamo più nello specifico parlando di un tipo molto diffuso di API: le API REST.
Cosa significa REST?
REST sta per REpresentational State Transfer, un’architettura introdotta da Roy Fielding nella sua tesi di dottorato nel 2000. È uno stile architetturale per sistemi distribuiti, in particolare per il web.
Un’API REST è quindi un’interfaccia che permette a due sistemi di comunicare usando il protocollo HTTP, rispettando i principi dell’architettura REST.
Le 6 caratteristiche fondamentali di una API RESTful
Per essere definita RESTful, un’API deve rispettare i seguenti principi:
- Architettura client-server
Il client e il server devono essere separati. Il client si occupa dell’interfaccia utente, il server della logica e dei dati. - Stateless
Ogni richiesta dal client al server deve contenere tutte le informazioni necessarie. Il server non memorizza lo stato delle interazioni precedenti. - Cacheability
Le risposte devono indicare se possono essere memorizzate nella cache, per migliorare le performance. - Interfaccia uniforme
Le risorse devono essere identificate da URL, e le operazioni su di esse devono usare i metodi standard HTTP:GET→ recupera una risorsaPOST→ crea una nuova risorsaPUT→ aggiorna una risorsa esistenteDELETE→ elimina una risorsa
- Sistema a livelli
L’architettura può essere composta da più livelli (proxy, gateway, ecc.) senza che il client ne sia a conoscenza. - Code on demand (facoltativo)
Il server può inviare codice eseguibile (es. JavaScript) al client, se necessario.
Gli errori più comuni nelle API REST
Creare un’API RESTful ben fatta non è banale. Ecco alcuni errori frequenti:
- ❌ Usare i verbi nell’URL – Es:
/getUser/1→ meglio usare/users/1con metodoGET. - ❌ Non usare correttamente i metodi HTTP – Usare sempre
POSTanche per letture o cancellazioni rompe la semantica REST. - ❌ Restituire codici HTTP sbagliati – Es: ritornare sempre
200 OK, anche in caso di errore. - ❌ Non documentare l’API – Senza una documentazione chiara, anche una buona API diventa inutilizzabile.
- ❌ Violazione dello stateless – Memorizzare sessioni sul server rompe il principio REST e complica la scalabilità.
Come creare una semplice API REST con JavaScript (Node.js + Express)
Prerequisiti
- Node.js installato
- Inizializza un progetto con
npm init -y - Installa Express:
npm install express
Codice base
const express = require('express');
const app = express();
const port = 3000;
app.use(express.json());
let users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
];
// GET all users
app.get('/users', (req, res) => {
res.json(users);
});
// GET user by ID
app.get('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (!user) return res.status(404).send('User not found');
res.json(user);
});
// POST new user
app.post('/users', (req, res) => {
const newUser = {
id: users.length + 1,
name: req.body.name
};
users.push(newUser);
res.status(201).json(newUser);
});
// DELETE user
app.delete('/users/:id', (req, res) => {
users = users.filter(u => u.id !== parseInt(req.params.id));
res.status(204).send();
});
app.listen(port, () => {
console.log(`API listening at http://localhost:${port}`);
});
Bonus: come pubblicare online una API REST gratuitamente
Puoi usare Render, Railway, Glitch o Vercel (con funzioni serverless). Ecco un esempio con Render:
- Crea un repository su GitHub con il tuo codice Node.js.
- Vai su https://render.com e registrati.
- Clicca su “New” → “Web Service”.
- Collega il tuo repo, scegli “Node.js”, imposta il comando di avvio (es:
node index.js) e avvia il deploy.
In pochi minuti la tua API sarà accessibile pubblicamente!
Come invocare una API REST in JavaScript (e non solo)
Dopo aver creato una API REST, il passo successivo è imparare a usarla: cioè inviare richieste HTTP per leggere, creare o eliminare dati. Ecco come farlo con Postman, JavaScript e cURL.
🔗 URL di base
Se esegui l'API in locale:
http://localhost:3000
Se è online (es. Render):
https://nome-app.onrender.com
📥 1. Ottenere tutti gli utenti (GET /users)
✅ Postman
- Metodo:
GET - URL:
/users
✅ JavaScript
fetch('http://localhost:3000/users')
.then(res => res.json())
.then(data => console.log(data));
✅ cURL
curl http://localhost:3000/users
📥 2. Ottenere un singolo utente (GET /users/:id)
GET /users/1
✅ JavaScript
fetch('http://localhost:3000/users/1')
.then(res => res.json())
.then(data => console.log(data));
✅ cURL
curl http://localhost:3000/users/1
➕ 3. Creare un nuovo utente (POST /users)
✅ Postman
- Metodo:
POST - Headers:
Content-Type: application/json - Body:
{
"name": "Charlie"
}
✅ JavaScript
fetch('http://localhost:3000/users', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: 'Charlie' })
})
.then(res => res.json())
.then(data => console.log(data));
✅ cURL
curl -X POST http://localhost:3000/users \
-H "Content-Type: application/json" \
-d '{"name":"Charlie"}'
🗑️ 4. Eliminare un utente (DELETE /users/:id)
✅ JavaScript
fetch('http://localhost:3000/users/2', {
method: 'DELETE'
})
.then(res => console.log('User deleted, status:', res.status));
✅ cURL
curl -X DELETE http://localhost:3000/users/2
🧪 Avvio del server locale
Ricorda di avviare il server Node.js prima di testare:
node index.js
Conclusione
Le API REST sono uno standard potente e ampiamente usato per costruire servizi web scalabili e manutenibili. Rispettare i principi REST non è solo una questione stilistica, ma una buona pratica per creare API intuitive, efficienti e facilmente integrabili.
Con strumenti come Node.js ed Express, è possibile crearne una in pochi minuti e renderla pubblica con servizi gratuiti come Render o Railway.
Ricorda:
una API che rispetta i principi REST è anche detta RESTful API
Follow me #techelopment
Official site: www.techelopment.it
facebook: Techelopment
instagram: @techelopment
X: techelopment
Bluesky: @techelopment
telegram: @techelopment_channel
whatsapp: Techelopment
youtube: @techelopment
