/OOPproject

Progetto di Programmazione ad Oggetti

Primary LanguageJava

OOPproject

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)

Eseguire richieste

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"]}}

Come avviare

Download

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.

Sviluppo

Package

Classi

Package com.esame.progetto

Package com.esame.progetto.controller

Package com.esame.progetto.model

Package com.esame.progetto.service

Package com.progetto.esame.utilities

Diagrammi UML

Class Diagram

Use Case Diagram

Sequence Diagram

Run dell’Applicazione

Chiamata GET/metadata

Chiamata GET/data

Chiamata GET/stats

Chiamata POST/data

Chiamata POST/stats