Una API (Application Programming Interface) è un insieme di funzioni e procedure per accedere a un servizio o a un sistema operativo. Un’API consente a un programmatore di scrivere codice che interagisce con un servizio o un sistema operativo.
Un servizio web, d’altra parte, è una collezione di API che consentono a un’applicazione di comunicare con un altro sistema attraverso la rete. Un servizio web può essere esposto nella forma di un’API, ma può anche essere esposto come una pagina web o una pagina HTML. Un servizio web può essere creato utilizzando una varietà di tecnologie, come ad esempio XML, JSON, SOAP e REST. In questo esempio cito a modo un Servizio poichè quello che vedremo è una vera è propria applicazione web (se implementato con le le relative pagine View), ma viene esposto come un’ API.
Non perdiamo tempo e mettiamoci subito al lavoro d’altronde abbiamo solo 5 minuti. ...Leggi di più
- Iniziamo a creare il nostro progetto Spring Boot. Possiamo farlo utilizzando l’Initializr recondoci col browser a questo indirizzo https://start.spring.io/ oppure se utilizziamo l’Ide STS (Spring Tool Suite) in File->New–>Spring Starter Project.
- Dobbiamo aggiungere come dipendenze Spring data JPA e Spring Web la schermata sarà simile a questa:
A seconda del nome scelto per il Package avremo già quasi tutto pronto, ma per fare il progetto con ordine creeremo altri 3 package (controller – dao – model). La schermata sarà simile alla seguente:
In ogni nuovo package avremo in questo esempio 3 nuovi file di cui 2 classi e una interfaccia, iniziamo dal controller, annotiamo il mapping e settiamo la classe come controller ecco il codice:
@Controller
public class AlienController {
@Autowired
AlienRepo repo;
//Response in json format
@RequestMapping("/aliens")
@ResponseBody
public List<Alien> getAliens() {
return repo.findAll();
}
@RequestMapping("/alien/{aid}")
@ResponseBody
public Optional<Alien> getAliensById(@PathVariable("aid") int aid) {
return repo.findById(aid);
}
}
Notiamo subito che c’è una notazione @Autowired, è la nostra interfaccia all’entità del repository. Quindi ci spostiamo nel package controller e creiamo la nostra interfaccia ecco il codice:
public interface AlienRepo extends JpaRepository<Alien, Integer> {
}
La nostra interfaccia non implementa nessun metodo perchè JpaRepository contine già i metodi chiamati dal controller
Non ci resta che creare L’Entity, ci spostiamo nel nostro package model e creiamo la nostra classe entità che sarà la copia della nostra tabella del database. Nota che in questo esempio viene usato il database in memory H2, quando chiuderai il progetto o lo fai ripartire tutti i dati saranno persi, naturalmente puoi usare altri db che preferisci, ma passiamo al codice:
@Entity
public class Alien {
@Id
private int aid;
private String aname;
private String tech;
public int getAid() {
return aid;
}
public void setAid(int aid) {
this.aid = aid;
}
public String getAname() {
return aname;
}
public void setAname(String aname) {
this.aname = aname;
}
public String getTech() {
return tech;
}
public void setTech(String tech) {
this.tech = tech;
}
@Override
public String toString() {
return "Alien [aid=" + aid + ", aname=" + aname + ", tech=" + tech + "]";
}
}
Questa classe è molto semplice, viene annotata come @Entity e contiene solo 3 campi, tutti gli altri metodi vengono scritti automaticamente dal nostro IDE (in eclipse tasto dx –>source–>Generate getter & setter )
Abbiamo quasi terminato, andiamo nella cartella src/main/resources e apriamo il file application.properties inizialmente sarà vuoto dobbiamo popolarlo con solo 3 righe come segue:
spring.h2.console.enabled=true
spring.sql.init.platform=h2
spring.datasource.url=jdbc:h2:mem:seco
Abbiamo abilitato la console H2 e impostato la connessione.
INCREDIBILE ABBIAMO FINITO, COME PROMESSO IN MENO DI 5 MINUTI !
Possiamo far partire il nostro progetto avremo su http://localhost:8080/h2-console la nostra console del db:
Dopo l’ accesso popolate la tabella Alien che è stata generata automaticamente con qualche insert tipo queste righe:
insert into alien values (101, 'Mario', 'Java');
insert into alien values (102, 'Beppe', 'Net');
insert into alien values (103, 'Renato', 'Php');
insert into alien values (104, 'Segio', 'Jquery');
insert into alien values (105, 'Domi', 'C#');
insert into alien values (106, 'Rino', 'CSS');
Non ci resta che testare il nostro servizio:
Su http://localhost:8080/aliens ci verrà restituito in formato Json tutti i nostri record, mentre su http://localhost:8080/alien/102 ci verrà restituito il record con ID 102.
Buon lavoro ! Vuoi il codice dell’esempio ? Scrivi
Se in questa articolo ci sono degli errori o hai dei suggerimenti, faccelo sapere!