Esercitazioni di Spring Boot 2: il nostro primo controller REST

Dopo aver fatto la conoscenza di Spring Boot e analizzato la tipica struttura di un progetto vediamo come costruire in concreto una semplice applicazione per apprendere i concetti di base e  poi lanciarci in qualcosa di più complesso.

L’idea è di creare una semplice API basata su REST che ci consenta di interrogare un database di calciatori e di fare le classiche operazioni CRUD.

Inizialmente ci serviremo di un array costruito a mano, poi realizzeremo un piccolo database a cui collegare l’applicazione.

Cercherò di non dilungarmi eccessivamente anche perchè tutto il codice è disponibile sul mio repository GitHub.

Per prima cosa creiamo un nuovo progetto seguendo le indicazioni riportate in un precedente  post.

Lo chiameremo Players per cui Spring Initializer genererà in automatico la classe PlayersApplication.

Al momento possiamo lasciarla in pace così come la classe ServletInitializer.

Dobbiamo invece creare la classe Player che modella il nostro calciatore. Sono sufficienti pochi attributi come il nome, il cognome e la squadra di appartenenza (tutti di tipo String) nonchè i relativi metodi getter e setter che qualsiasi IDE è in grado di generare per noi automaticamente.

Nel codice che trovate su GitHub ho utilizzato dei termini inglesi per dare un tocco più internazionale al tutto :-)

Aggiungiamo anche un attributo id di tipo intero che ci servirà in seguito. Va da sè che rappresenta una sorta di chiave primaria per l’identificazione del singolo calciatore.

Ed eccoci al clou: la classe PlayersController.

Si tratta di una classica classe Java contenente alcune annotazioni specifiche di Spring Boot.

In particolare @RestController serve a denotare la sua natura e ad informare il framework che la gestione della stessa sarà di sua competenza.

Infatti si può osservare che da nessuna parte viene creata esplicitamente un’istanza di questa classe, ma è appunto il framework a farlo all’avvio dell’applicazione, rendendo disponibili i servizi da essa offerti.

Ma di quali servizi stiamo parlando?

Si tratta di di un’API con un singolo endpoint “/players” che restituisce un elenco di calciatori.

Da un punto di vista pratico si tratta di un elementare metodo pubblico, getAllPlayers(), che ritorna una lista i cui elementi sono di tipo Player.

La lista è per ora creata manualmente.

Ciò che trasforma magicamente questo metodo in un endpoint é l’annotazione @RequestMapping a cui passiamo come parametro la stringa “/players” che ne indica il path.

In assenza di ulteriori parametri la @RequestMapping effettua implicitamente una chiamata di tipo GET.

Non ci resta che compilare ed eseguire l’applicazione e puntare il browser all’indirizzo http://localhost:8080/players

springboot-players

o in alternativa ricorrere a curl da riga di comando.

spingboot-players-curl

In entrambi i casi vedrete un oggetto JSON contenente la lista dei tre giocatori.

In fin dei conti è davvero uno scherzo mettere in piedi lo scheletro di un servizio REST.

La prossima volta vedremo come aggiungere ulteriori endpoint e quali parametri è possibile specificare nelle annotazioni previste dal controller.

Stay tuned!

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Utilizzando il sito, accetti l'invio dei cookies da parte nostra. Maggiori informazioni

Questo sito utilizza i cookies per fornire la migliore esperienza di navigazione possibile. Continuando ad utilizzarlo senza modificare le impostazioni o cliccando su "Accetta" acconsenti al loro utilizzo.

Chiudi