Cos’è una API REST e come crearla con JavaScript + bonus

  



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.

🔗 Ti piace Techelopment? Dai un’occhiata al sito per tutti i dettagli!


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:

  1. 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.
  2. Stateless
    Ogni richiesta dal client al server deve contenere tutte le informazioni necessarie. Il server non memorizza lo stato delle interazioni precedenti.
  3. Cacheability
    Le risposte devono indicare se possono essere memorizzate nella cache, per migliorare le performance.
  4. Interfaccia uniforme
    Le risorse devono essere identificate da URL, e le operazioni su di esse devono usare i metodi standard HTTP:
    • GET → recupera una risorsa
    • POST → crea una nuova risorsa
    • PUT → aggiorna una risorsa esistente
    • DELETE → elimina una risorsa
  5. Sistema a livelli
    L’architettura può essere composta da più livelli (proxy, gateway, ecc.) senza che il client ne sia a conoscenza.
  6. 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/1 con metodo GET.
  • Non usare correttamente i metodi HTTP – Usare sempre POST anche 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:

  1. Crea un repository su GitHub con il tuo codice Node.js.
  2. Vai su https://render.com e registrati.
  3. Clicca su “New” → “Web Service”.
  4. 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