Skip to content

Versione 1.0

Latest

Choose a tag to compare

@b84an b84an released this 28 Sep 12:23
8731b72

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, DELETE ora 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.

  1. Caricare i file del progetto in una cartella sul server.
  2. Assicurarsi che il server abbia i permessi di scrittura per la directory delle sessioni di PHP.
  3. Verificare che il file api/.htaccess sia configurato correttamente per il percorso scelto (in particolare la direttiva RewriteBase).
  4. Navigare alla pagina index.html per 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 errore 401 Unauthorized.

2. Paginazione dei risultati

  • Stato: Da implementare.
  • Obiettivo: Per simulare la gestione di grandi set di dati, l'endpoint GET /api/aule verrà 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