1. Cos'è un'API e l'Approccio REST
Un'API (Application Programming Interface) è un insieme di definizioni e protocolli attraverso cui i software comunicano tra loro. Quando parliamo di REST (Representational State Transfer), ci riferiamo a uno stile architetturale per la progettazione di servizi web basato sul protocollo HTTP, ideato da Roy Fielding nel 2000.
1. Client-Server: Separazione delle responsabilità tra interfaccia utente e logica
di memorizzazione dati.
2. Stateless (Senza stato): Ogni richiesta dal client deve contenere tutte le
informazioni necessarie per essere compresa ed elaborata dal server.
3. Cacheable: Le risposte devono definirsi cacheabili o meno per ottimizzare le
prestazioni di rete.
4. Interfaccia Uniforme: Semplifica e disaccoppia l'architettura tramite risorse
identificate da URI e manipolate tramite rappresentazioni.
5. Sistema a Livelli (Layered System): Il client non sa se è connesso direttamente
al server finale o a un proxy intermedio.
6. Code on Demand (Opzionale): Capacità di estendere le funzionalità del client
inviando eseguibili (es. script JavaScript).
2. Metodi HTTP e Operazioni CRUD
Nelle API REST, le risorse vengono identificate da URI univoci (es. /api/v1/utenti) e
manipolate sfruttando i verbi nativi del protocollo HTTP mappati sulle operazioni CRUD (Create, Read,
Update, Delete):
| Metodo HTTP | Operazione CRUD | Significato e Utilizzo | Idempotente? |
|---|---|---|---|
| GET | Read (Lettura) | Recupera la rappresentazione di una risorsa o di una collezione di risorse. | Sì |
| POST | Create (Creazione) | Crea una nuova risorsa all'interno di una collezione specificata. | No |
| PUT | Update (Aggiornamento totale) | Sostituisce completamente una risorsa esistente o la crea se non esiste. | Sì |
| DELETE | Delete (Eliminazione) | Rimuove la risorsa specificata dall'URI. | Sì |
3. Codici di Stato HTTP
Le risposte di un'API REST restituiscono sempre uno standard di stato numerico suddiviso in categorie:
200 OK (richiesta riuscita), 201 Created
(risorsa creata con successo).400 Bad Request (sintassi errata),
401 Unauthorized (autenticazione mancante), 404 Not Found (risorsa
inesistente).500 Internal Server Error (guasto inatteso
sul server).4. Simulatore Interattivo: Client API REST
Seleziona un endpoint e un metodo HTTP per simulare l'invio di una richiesta verso il server di NEXUS didattica e visualizzare il payload JSON di risposta.