API
Introduzione alle API
Le API sono scritte in linguaggio Java utilizzando il framework Spring Boot. Inoltre, Liquibase viene utilizzato per l'inizializzazione e la gestione delle migrazioni del database, mentre il driver JDBC di MariaDB viene impiegato per la connessione al database MariaDB.
API UTILIZZATE:
-
Api di Autenticazione
AuthController è un controller di Spring Boot che gestisce operazioni relative all'autenticazione come la registrazione e il login degli utenti.
Fornisce due endpoint principali: uno per la registrazione degli utenti e l'altro per il login degli utenti. Questo controller è mappato su/api/auth
Registrare un Utente:
- Inviare una richiesta POST a
/api/auth/register
con un corpo JSON contenente username, password, nome, cognome, email, data, cellulare.
Ricevere una risposta con i dati dell'utente ed un token, con un codice di stato "200" se la richiesta è andata a buon fine ed un codice di stato "403" se la richiesta non è andata a buon fine
Effettuare il Login di un Utente:
- Inviare una richiesta POST a
/api/auth/login
con un corpo JSON contenente username e password.
Ricevere una risposta con i dati dell'utente un token ed un code, un codice di stato "200" se la richiesta è andata a buon fine ed un codice di stato "403" se la richiesta non è andata a buon fine
- Inviare una richiesta POST a
-
Api di gestione Fidelity Card
FidelityCardController è un controller di Spring Boot che gestisce operazioni relative alle fidelity card, come ottenere le fidelity card di un utente, ottenere la fidelity card attiva di un utente, impostare punti manualmente e ottenere punti per codice.
Questo controller è mappato su/api
1. Ottenere tutte le Fidelity Card di un Utente:
- Inviare una richiesta
GET
a/api/all-fidelity/{user-id}
Ricevere una risposta JSON con una lista di tutte fidelity card dell'utente specificato.
2. Ottenere la Fidelity Card Attiva di un Utente:
- Inviare una richiesta
GET
a/api/fidelity/{user-id}
Ricevere una risposta JSON con la fidelity card attiva dell'utente specificato.
3. Impostare Punti Manualmente:
- Inviare una richiesta
POST
a/api/set-point-manually
con un corpo JSON contenente fidelityCardId e points.
Ricevere una risposta JSON con i dettagli aggiornati della fidelity card.
4. Ottenere Punti per Codice:
- Inviare una richiesta
GET
a/api/point/{codice}
Ricevere una risposta JSON con i punti associati al codice specificato.
- Inviare una richiesta
-
Api di gestione dei punti dellaFidelity Card
PuntiController è un controller di Spring Boot che gestisce operazioni relative ai punti fedeltà, come aggiungere punti a un account fedeltà. Questo controller è mappato su
/api/punti
Aggiungere Punti:
- Inviare una richiesta
POST
a/api/punti/add-point
con un corpo JSON contenente codice e points. - Ricevere una risposta JSON con un messaggio di conferma.
- Inviare una richiesta
-
Api di gestione degli Utenti
UtenteController è un controller di Spring Boot che gestisce operazioni relative agli utenti come ottenere i dettagli di un singolo utente e ottenere la lista di tutti gli utenti.
Questo controller è mappato su/api
1. Ottenere i Dettagli di un Utente per ID:
- Inviare una richiesta
GET
a/api/user/{id}
Ricevere una risposta JSON con i dettagli dell'utente specificato
2. Ottenere la Lista di Tutti gli Utenti:
- Inviare una richiesta
GET
a/api/user-list
Ricevere una risposta JSON con la lista di tutti gli utenti
- Inviare una richiesta
-
API Qr Code
La servlet
https://api.qrserver.com/v1/create-qr-code/?data=${this.codice}&size=360x360&margin=30
è un servizio esterno che genera codici QR a partire da un testo fornito. In questo caso, l'app MyFidelity utilizza questa servlet per creare un codice QR basato su un input di testo specifico.
Ecco come funziona:
-
Input del Testo: L'app MyFidelity fornisce un testo (ad esempio, un URL, un messaggio o un identificatore) che deve essere convertito in un codice QR.
-
Parametri della Servlet:
data
: Il testo fornito viene passato come parametro nella parte finale dell'URL. Ad esempio,${this.codice}
rappresenta il testo da convertire.size
: Specifica la dimensione del codice QR (in pixel). Nel caso specifico, è impostato su 360x360.margin
: Specifica il margine intorno al codice QR (in pixel). Qui è impostato su 30.
-
Generazione del Codice QR: La servlet "https://api.qrserver.com/v1/create-qr-code/" riceve il testo fornito e crea un'immagine del codice QR corrispondente con le dimensioni e i margini specificati.
-
Esempio di Richiesta POST:
-
Per generare un codice QR tramite una richiesta POST, l'app MyFidelity dovrebbe inviare una richiesta HTTP POST all'URL della servlet con il testo da convertire come corpo della richiesta.
-
L'app potrebbe inviare una richiesta POST simile a questa:
POST https://api.qrserver.com/v1/create-qr-code/ Content-Type: application/x-www-form-urlencoded data=testo &size=360x360 &margin=30
Dove
testo
rappresenta il testo da trasformare nel codice QR.Risultato prodotto
-
-
Salvataggio dell'Immagine: Una volta ottenuta l'immagine del codice QR dalla servlet, l'app MyFidelity può utilizzarla direttamente nell'interfaccia utente.