Spring boot Web Service
Un Web Service è un sistema software progettato per supportare l'interoperabilità tra diversi elaboratori su una medesima rete, è in grado di mettersi al servizio di un Client (applicazione, sito web, Postman) comunicando mediante il protocollo http. Consente quindi agli utenti che vi si collegano di usufruire delle funzioni che mette a disposizione. Con Spring Boot, è stato possibile creare questo software che lancia l'intera applicazione web, compreso il web server integrato.
Il nostro Data-set contiene informazioni riguardanti i Block-exempted aid, regolato dal GBER. Si tratta di un regolamento europeo di esenzione per categoria contenente 26 misure che possono essere utilizzate per fornire aiuti di Stato legittimi senza passare attraverso i normali processi di notifica e approvazione. È stato pubblicato dalla Commissione europea nel 2008 allo scopo di consolidare e semplificare le attuali normative sugli aiuti di Stato.
La struttura dati delle informazioni, visionabile cliccando qui, viene riassunta nello schema seguente:
La nostra applicazione permette di richiedere mediante API REST (GET o POST) con rotte distinte la:
- Restituzione dei metadati, formato JSON, ovvero l’elenco degli attributi, alias degli stessi e tipo di dati contenuti.
- Restituzione dei dati riguardanti ogni record, formato JSON.
- Restituzione dei dati riguardanti record filtrati, formato JSON.
- Restituzione delle statistiche sui dati di uno specifico campo.
- Restituzione delle statistiche sui dati di uno specifico campo, su record filtrati.
Il test API è un tipo di test del software che prevede il test delle API (Application Programming Interface ) direttamente e come parte dei test di integrazione per determinare se soddisfano le aspettative in termini di funzionalità, affidabilità, prestazioni e sicurezza. Poiché le API mancano di una GUI , il test dell'API viene eseguito a livello di messaggio, nelle modalità conformi al formato standard JSON (Javascript Object Notation)
Per eseguire le richieste GET o POST si può installare un API testing (ad esempio: Postman). La seguente tabella mostra le richieste possibili.
Gli oggetti presenti nei campi stringa sui quali fare le statistiche sono i seguenti:
OBJ:
OBJ01, OBJ02, OBJ03, OBJ04, OBJ05, OBJ06, OBJ07, OBJ08, OBJ09, OBJ10, OBJ11, OBJ12, OBJ13 OBJ14, OBJ15, OBJ40, OBJ41, OBJ42, OTH, TOTAL
GEO:
EU28, BE, BG, CZ, DK, DE, EE, IE, EL, ES, FR, HR, IT, CY, LV, LT, LU, HU, MT, NL, AT, PL, PT, RO, SI, SK, FI, SE, UK
FREQ:
A
Per ottenere una statistica di tipo numerica invece è sufficiente specificare un qualsiasi numero in formato FLOAT (100.0 e non 100).
La seguente tabella mostra i filtri disponibili
Per i filtri numerici il formato è: {“campo” : { “filtro” : valore_filtro}}
Per i filtri logici applicati a stringhe il formato è: {“campo” : { “filtro” : [“oggetto1”, “oggetto2”, …, “oggettoN”]}}
Per mostrare l'intero dataset effettuare una richiesta get su /data, per i metadata su /metadata.
Per mostrare le statistiche e i data non filtrati effettuare una richiesta GET con primo parametro "fieldName" e secondo "value" nel caso di valori stringhe e solo fieldName nel caso di valori numerici.
Esempio di prova:
Valori stringa con GET
- localhost:8080/stats?fieldName=GEO&value=UK
- localhost:8080/data?fieldName=GEO&value=IT
Valori numerici con GET
- localhost:8080/stats?fieldName=anno2015
- localhost:8080/data?fieldName=anno2014
Infine per filtrare su /data e /stats fare una richiesta POST con il filtro specificato nel body. Esempi di prova:
- POST localhost:8080/stats body={"anno2010": {"$gt" : 140.0}}
- POST localhost:8080/stats body={"GEO" : {"$in": ["UK", "DK", "SE"]}}
- POST localhost:8080/data body={"anno2012": {"$lt" : 550.0}}
- POST localhost:8080/data body={"OBJ" : {"$nin": ["OBJ01", "OBJ04"]}}
Usando l’IDE Eclipse si possono seguire i seguenti passi:
- Aprire Eclipse, nella Show view premere il pulsante "clone a Git Repository".
- Nella finestra che appare, incollare URL di questa repository nella casella URI e procedere.
- Recarsi nel clone della repository che apparirà, tasto destro quindi Import Project (verificare che sia importato come progetto Maven) e procedere.
- A questo punto potete provare ad eseguire il codice, selezionando "nome_Progetto" tasto destro, "Run as" e quindi "Spring boot App".
In alternativa è possibile:
Scaricare il progetto, entrare nella directory principale da terminale e, dopo aver installato Maven correttamente, creare il package con il comando "mvn package". Per poter eseguire l’applicazione è sufficiente poi digitare da terminale:
”java -jar /target/”nome del file.jar”
Ora l'applicazione Web Service sarà attiva e in ascolto alla porta http://localhost:8080.
Package com.esame.progetto
Package com.esame.progetto.controller
Package com.esame.progetto.model
Package com.esame.progetto.service
Package com.progetto.esame.utilities
Run dell’Applicazione
Chiamata GET/metadata
Chiamata GET/data
Chiamata GET/stats
Chiamata POST/data
Chiamata POST/stats