Benvenuti a Restful Web Services Tutorial in Java. REST è l’acronimo di REpresentational State Transfer. REST è uno stile architettonico per lo sviluppo di applicazioni accessibili tramite la rete. RESTO stile architettonico è stato portato in luce da Roy Fielding nella sua tesi di dottorato nel 2000.
Restful Web Services
Restful Web Services è un’architettura client-server stateless in cui i servizi Web sono risorse e possono essere identificati dai loro URI.,
Le applicazioni client REST possono utilizzare i metodi HTTP GET / POST per richiamare i servizi Web Restful. REST non specifica alcun protocollo specifico da utilizzare, ma in quasi tutti i casi viene utilizzato su HTTP/HTTPS. Rispetto ai servizi Web SOAP, questi sono leggeri e non seguono alcun standard. Possiamo usare XML, JSON, testo o qualsiasi altro tipo di dati per la richiesta e la risposta.
Java RESTful Web Services API
Java API for RESTful Web Services (JAX-RS) è l’API Java per la creazione di servizi Web REST., JAX-RS utilizza annotazioni per semplificare lo sviluppo e la distribuzione di servizi web. JAX-RS fa parte di JDK, quindi non è necessario includere nulla per utilizzare le sue annotazioni.
Annotazioni Restful Web Services
Alcune delle importanti annotazioni JAX-RS sono:
-
@Path
: utilizzate per specificare il percorso relativo di classe e metodi. Possiamo ottenere l’URI di un servizio Web scansionando il valore di annotazione del percorso., -
@GET
,@PUT
,@POST
,@DELETE
e@HEAD
: utilizzato per specificare il tipo di richiesta HTTP per un metodo. -
@Produces
,@Consumes
: utilizzato per specificare i tipi di richiesta e risposta. -
@PathParam
: utilizzato per associare il parametro del metodo al valore del percorso analizzandolo.
Restful Web Services e SOAP
- SOAP è un protocollo mentre REST è uno stile architettonico.,
- Le applicazioni server e client SOAP sono strettamente accoppiate e si legano al contratto WSDL mentre non esiste alcun contratto nei servizi Web REST e nel client.
- La curva di apprendimento è facile per REST rispetto ai servizi Web SOAP.
- I tipi di richiesta e risposta dei servizi Web REST possono essere XML, JSON,text ecc. mentre SOAP funziona solo con XML.
- JAX-RS è l’API Java per i servizi Web REST mentre JAX-WS è l’API Java per i servizi Web SOAP.
Implementazioni API REST
Esistono due implementazioni principali dell’API JAX-RS.,
- Jersey: Jersey è l’implementazione di riferimento fornita da Sun. Per utilizzare Jersey come la nostra implementazione JAX-RS, tutto ciò di cui abbiamo bisogno per configurare il suo servlet nel web.xml e aggiungere dipendenze richieste. Si noti che l’API JAX-RS fa parte di JDK non Jersey, quindi dobbiamo aggiungere i suoi jar di dipendenza nella nostra applicazione.
- RESTEasy: RESTEasy è il progetto JBoss che fornisce l’implementazione di JAX-RS.
Java Restful Web Services Tutorial
Vediamo quanto sia facile creare un servizio web Restful utilizzando Jersey e quindi RESTEasy., Esporremo i seguenti metodi su HTTP e utilizzeremo l’estensione Chrome Postman per testarli.,d>
Jersey Restful Web Services
Creare un dynamic web project e poi convertire Maven per ottenere lo scheletro dei suoi servizi web di progetto., Sotto immagine mostra la struttura del progetto del progetto finale.
Diamo un’occhiata alle dipendenze Jersey che abbiamo in pom.file xml.
Non è necessario aggiungere dipendenze jersey-client, ma se si sta scrivendo un programma java per richiamare un servizio Web REST utilizzando Jersey, è necessario.
Ora diamo un’occhiata al descrittore di distribuzione per imparare come configurare Jersey per creare la nostra applicazione web.
Questo è tutto ciò che è necessario per inserire Jersey nella nostra applicazione web, nel nostro codice java useremo le annotazioni JAX-RS., Si noti il valore del parametro init com.sun.jersey.config.property.packages
per fornire il pacchetto che verrà scansionato per risorse e metodi del servizio Web.
REST Example Model Classes
Prima di tutto creeremo due bean modello – Person
per i nostri dati applicativi eResponse
per l’invio di risposta ai sistemi client. Poiché invieremo la risposta XML, i bean dovrebbero essere annotati con @XmlRootElement
, quindi abbiamo questa classe.,
REST Web Services Tutorial Services
Sulla base della nostra struttura URI, di seguito è riportata l’interfaccia del servizio e il suo codice di implementazione.
Restful Web Services Test
Questo è tutto. Il nostro servizio web è pronto, basta esportarlo come file WAR e metterlo all’interno della directory Tomcat webapps o distribuirlo in qualsiasi altro contenitore a scelta.
Di seguito sono riportati alcuni dei test eseguiti utilizzando Postman chrome extension per questo servizio web. Si noti che dobbiamo fornire valori Accept e Content-Type come “application/xml” nell’intestazione della richiesta come mostrato nell’immagine sottostante.,
- getDummy
- aggiungi
- get
- getAll
- elimina
per la creazione di web services utilizzando Jersey JAX-RS attuazione. Come puoi vedere, la maggior parte del codice utilizza le annotazioni JAX-RS e Jersey è collegato tramite il descrittore di distribuzione e le dipendenze.,
RESTEasy RESTful Web Services Example
Useremo tutta la logica di business sviluppata nel progetto Jersey, ma piuttosto che apportare modifiche allo stesso progetto, ho creato un nuovo progetto. Creare un progetto web dinamico e convertirlo in progetto Maven. Quindi copiare tutte le classi java-Person, Response, PersonService e PersonServiceImpl. Di seguito è riportato il progetto finale dopo che abbiamo finito con tutte le modifiche.
Aggiungi sotto le dipendenze RESTEasy in pom.file xml.
Di seguito è riportato il web.file xml in cui stiamo configurando Resteasy servlet.,
Notare l’init-param dove stanno fornendoMyApp
classe come valore, qui stiamo estendendojavax.ws.rs.core.Application
classe come mostrato di seguito.
RESTEasy Web Services Test
Questo è tutto. Il nostro servizio web è pronto con l’implementazione RESTEasy JAX-RS. Di seguito sono riportati alcuni degli output di Postman chrome extension test.,
- getDummy
- aggiungi
- get
questo è tutto per Restful Web Services Tutorial, Spero che hai imparato su JAX-RS annotazioni e capito i vantaggi di avere API standard che ci ha aiutato nel riutilizzo del codice e si spostano da Jersey a RESTEasy così facile.