Formato Uniforme delle Risposte API
Tutte le API del sistema RICEVUTE utilizzano un formato JSON standardizzato.
Schema della Risposta
{
"success": true|false,
"data": {...}, // presente solo se success=true
"error": { // presente solo se success=false
"code": 1001,
"message": "Descrizione errore",
"details": [...] // opzionale
}
}
Esempio Risposta di Successo
{
"success": true,
"data": {
"ID_Prodotto": "1",
"Descrizione": "Pizza Margherita",
"Prezzo": 8.50
}
}
Esempio Risposta di Errore
{
"success": false,
"error": {
"code": 1004,
"message": "Codice prodotto non fornito",
"details": ["Campo 'codice' mancante o vuoto"]
}
}
Endpoint Principali
GET /api/cerca_prodotto.php
Descrizione: Cerca un prodotto per codice
Parametri:
codice(string, required): Codice del prodotto
Esempio Richiesta:
GET /api/cerca_prodotto.php?codice=PIZZA001
Esempio Risposta:
{
"success": true,
"data": {
"ID_Prodotto": "1",
"Descrizione": "Pizza Margherita",
"Prezzo": 8.50,
"Codice_Prodotto": "PIZZA001"
}
}
POST /api/salva_ordine.php
Descrizione: Salva un nuovo ordine e genera comande
Body (JSON):
{
"nome_cliente": "Mario Rossi",
"id_tavolo": 1,
"numero_coperti": 2,
"totale": 25.00,
"staff": false,
"sconto": 0.00,
"dettagli": [
{
"id_prodotto": 1,
"quantita": 2,
"prezzo_unitario": 8.50
}
]
}
Esempio Risposta:
{
"success": true,
"data": {
"id_ordine": 42,
"message": "Ordine salvato con successo"
}
}
GET /api/genera_report.php
Descrizione: Genera report giornaliero
Parametri:
data(string, required): Data in formato YYYY-MM-DD
Esempio Richiesta:
GET /api/genera_report.php?data=2024-11-06
GET /api/gestisci_dati.php
Descrizione: Gestisce dati anagrafici (prodotti, tavoli, categorie, reparti)
Parametri:
section(string): prodotti | tavoli | categorie | repartidata(string): Per report, data in formato YYYY-MM-DD
POST /api/ripeti_comanda.php
Descrizione: Ripete la stampa di una comanda
Body (JSON):
{
"id_comanda": 123
}
Codici di Errore
| Codice | Descrizione |
|---|---|
| 1001 | Input non valido |
| 1002 | Validazione fallita |
| 1003 | Database error |
| 1004 | Parametro mancante |
| 1005 | Risorsa non trovata |
| 2001 | Errore stampa |
| 5000 | Errore interno del server |
Validazione Input
Il sistema implementa validazione centralizzata tramite src/Utils/InputValidator.php:
- Sanificazione input (trim, strip tags)
- Validazione tipi (integer, float, boolean, string)
- Validazione lunghezza minima/massima
- Validazione valori permessi (enum)
- Validazione formato email, URL, data
Autenticazione
Le pagine protette richiedono autenticazione tramite sessione PHP:
public/login.php: Pagina di loginconfig/check_login.php: Verifica sessione- Cookie di sessione con flag secure, httponly, samesite