Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

RESTful Web Services in Java con Jersey: il client

Jersey consente di realizzare componenti lato client In questo capitolo vedremo qualche esempio per interrogare i servizi appena realizzati per la nostra libreria ponendoci, stavolta, dal punto di vista del client.
Jersey consente di realizzare componenti lato client In questo capitolo vedremo qualche esempio per interrogare i servizi appena realizzati per la nostra libreria ponendoci, stavolta, dal punto di vista del client.
Link copiato negli appunti

Nei capitoli precedenti abbiamo appreso come realizzare servizi REST. Jersey ci viene in aiuto anche per realizzare componenti lato client, quindi moduli software per l'interrogazione di servizi. Vedremo ora qualche esempio per interrogare i servizi appena realizzati per la nostra libreria, ponendoci stavolta dal punto di vista del client.

Dipendenze

Per procedere rapidamente con la creazione di metodi di test procederemo sfruttando JUnit che già dovrebbe essere incluso come dipendenza nel POM del nostro progetto. Andiamo quindi a creare la directory src/test/java e contestualmente aggiungiamo le seguenti dipendenze al file pom.xml:

<dependency>
	<groupId>org.glassfish.jersey.core</groupId>
	<artifactId>jersey-client</artifactId>
	<version>2.23.2</version>
</dependency>
<dependency>
	<groupId>org.glassfish.jersey.media</groupId>
	<artifactId>jersey-media-json-jackson</artifactId>
	<version>2.23.2</version>
</dependency>

Metodo GET di esempio

Creiamo ora la classe BookTest all'interno della directory appena creata ed implementiamo il metodo per fare una semplice richiesta di un libro.

public class BookTest extends TestCase {
	public void testGet() {
		Client client = ClientBuilder.newClient();
		WebTarget target = client.target("http://localhost:8080/api").path("books").path("1");
		Response response = target.request().get();
		System.out.println("Response code: " + response.getStatus());
		Book book = response.readEntity(Book.class);
		System.out.println("Title: " + book.getTitle());
	}
}

La classe BookTest estende la classe TestCase. Il nome del metodo di test deve iniziare con "test". Quindi è possibile avviare il test da terminale con Maven tarmite il comando:

mvn test

Ovviamente in parallelo dobbiamo aver avviato il server.

mvn jetty:run

Se tutto è andato per il verso giusto nel nostro terminale visualizzeremo, oltre al codice di riposta "200", il titolo del libro.

Metodo POST di esempio

Andiamo ora ad implementare il metodo di test per l'aggiunta di un nuovo libro alla nostra libreria. Vediamo come, anche in questo caso, Jersey ci viene in aiuto per facilitarci il compito. Implementiamo un nuovo metodo all'interno della stessa classe che abbiamo appena usato.

public void testAdd() {
	Client client = ClientBuilder.newClient();
	WebTarget target = client.target("http://localhost:8080/api").path("books");
	Book book = new Book();
	book.setTitle("Test");
	book.setLanguage("english");
	Response response = target.request().post(Entity.entity(book, MediaType.APPLICATION_JSON));
	System.out.println("Response code: " + response.getStatus());
}

Questa volta abbiamo creato la richiesta partendo dall'oggetto Book lasciando al framework il compito di trasformarne il contenuto in JSON. Possiamo avviare il test allo stesso modo.

Concludendo, abbiamo visto come sia possibile con Jersey implementare anche la parte client di servizi REST in modo rapido, senza doversi preoccupare delle fasi di serializzazione degli oggetti, lasciando eseguire al framework il parsing fra i JSON e gli oggetti Java.

Ti consigliamo anche