API Didattica per IIS Cobianchi (v1.0 - Beta)
Questo repository contiene la versione iniziale di un server API RESTful a scopo didattico. Questa versione introduce un concetto chiave per rendere le esercitazioni più realistiche e interattive.
Stato del Progetto: Questa non è più una semplice simulazione. Il progetto ora implementa uno stato temporaneo condiviso, che abbiamo soprannominato la "lavagna magica". Le operazioni di scrittura (POST, PUT, DELETE) modificano realmente i dati sul server e sono visibili a tutti gli utenti. Tuttavia, per garantire un ambiente di test sempre pulito, lo stato viene automaticamente ripristinato alla configurazione iniziale dopo 120 secondi di inattività.
Funzionalità implementate
- Endpoint RESTful Funzionanti: I metodi
GET,POST,PUT,DELETEora manipolano un set di dati reale in memoria sul server. - Stato Temporaneo Condiviso ("Lavagna Magica"): Le modifiche ai dati sono persistenti e condivise tra tutti gli utenti per un periodo di tempo definibile secondi dall'ultima operazione di scrittura. Il timer si resetta ad ogni modifica.
- Dataset Iniziale Statico: All'avvio o dopo il timeout, l'API carica un elenco predefinito di aule dal file
data.php. - Interfaccia Web Completa: Il progetto include la documentazione e il simulatore web per testare tutte le funzionalità attuali.
Struttura del Progetto
/
├── index.html # Homepage con la documentazione
├── simulator.html # Interfaccia web per testare l'API
├── assets/
│ └── style.css # Foglio di stile
└── api/
├── .htaccess # Regole di routing per Apache
├── index.php # Core dell'API (con logica di sessione temporanea)
└── data.php # File con lo stato di default dei dati
Installazione
Per eseguire questo progetto, è necessario un server web con supporto a PHP e Apache con il modulo mod_rewrite abilitato.
- Caricare i file del progetto in una cartella sul server.
- Assicurarsi che il server abbia i permessi di scrittura per la directory delle sessioni di PHP.
- Verificare che il file
api/.htaccesssia configurato correttamente per il percorso scelto (in particolare la direttivaRewriteBase). - Navigare alla pagina
index.htmlper iniziare.
Roadmap: Cosa manca per la versione finale
Questa versione è un grande passo avanti, ma ci sono ancora funzionalità importanti da implementare per completare il percorso didattico.
1. Aggiunta di autenticazione (API Key)
- Stato: Da implementare.
- Obiettivo: Attualmente l'API è aperta. Il prossimo passo è introdurre un sistema di sicurezza base. Ogni richiesta dovrà includere un HTTP Header (
X-API-Key) con una chiave segreta per essere accettata, altrimenti verrà respinta con un errore401 Unauthorized.
2. Paginazione dei risultati
- Stato: Da implementare.
- Obiettivo: Per simulare la gestione di grandi set di dati, l'endpoint
GET /api/auleverrà modificato per restituire i risultati in "pagine", controllate da query parameters come?page=1&limit=10.
3. Filtri avanzati e ricerca
- Stato: Da implementare.
- Obiettivo: Al momento non è possibile cercare o filtrare i dati. Verrà aggiunta la possibilità di fare ricerche testuali (es.
?search=laboratorio) e di applicare filtri più complessi per rendere l'API più versatile e realistica.
Autore
Progetto creato da Ivan Bertotto per la didattica presso l'IIS Cobianchi di Verbania.
https://www.ivanbertotto.it