REST 2.0: Definizione e configurazione con il framework Jersey

DOMANDA:

Cos'è REST e come configurare un ambiente per utilizzarlo?


RISPOSTA:

REST (REpresentational State Transfer) è un paradigma per la definizione di architetture distribuite. 
I suoi principi si basano sulla leggerezza e sull'utilizzo dei metodi offerti dal protocollo HTTP:
  1. Ogni entità/operazione viene rappresentata come una Risorsa
  2. Per l'invocazione si utilizzano i metodi HTTP (GET,PUT,POST,DELETE)
  3. La rappresentazione dei dati è snella (es. JSON)
REST non è un concetto nuovo: un sito web rispetta i principi REST, cosi come un feed RSS. Di recente si sta estendendo il concetto REST alle architetture orientate ai servizi, oggi principalmente basate su HTTP/SOAP.

Una funzionalità/servizio che rispetta i principi REST è denominata RESTful.

In Java esiste la specifica JAX-RS (JSR-339) che regola l'utilizzo di REST.
L'ultima release di JAX-RS è la 1.1 ma è in fase di approvazione la versione 2.0 che introduce miglioramenti, semplificazioni e nuove funzionalità.

La specifica 2.0 farà parte di Java EE 7 prevista per il Q2 2013

Dato l'imminente arrivo, in questo post vedremo come utilizzare REST 2.0.

Sebbene sia possibile utilizzare le API già messe a disposizione da JAX-RS, è preferibile avere il supporto di un framework in grado di semplificare e ridurre le operazioni di routine o di basso livello richieste da JAX-RS.


Uno di questi è Jersey che implementa le specifiche JAX-RS. 
Oggi è già disponibile l'implementazione per la versione 2.0 (per chi volesse approfondire l'argomento qui si possono trovare i vari framework messi a confronto). 

Jersey quindi ci consentirà di semplificare la realizzazione di un servizio REST.

A questo punto cosa devo fare per provare a realizzare un semplice servizio?

Ecco gli ingredienti:
  1. Eclipse
  2. Tomcat 7
  3. JAX-RS 2.0 (rc3)
    1. javax.ws.rs-api-2.0-rc3.jar
    2. javax.ws.rs-api-2.0-SNAPSHOT.jar
  4. Jersey 2.0 (rc1)
    1. jersey-client-2.0-rc1.jar
    2. jersey-common-2.0-rc1.jar
    3. jersey-container-servlet-2.0-rc1.jar
    4. jersey-container-servlet-core-2.0-rc1.jar
    5. jersey-container-servlet-core-2.0-rc1.jar
  5. Dipendenze (che trovate nella distribuzione di Jersey nella cartella ext)
    1. asm-all-repackaged-2.1.78.jar
    2. cglib-2.1.78.jar
    3. guava-14.0.jar
    4. hk2-api-2.1.78.jar
    5. hk2-locator-2.1.78.jar
    6. hk2-utils-2.1.78.jar
    7. javax.annotation-api-1.2-b02.jar
    8. javax.inject-1.jar
    9. javax.inject-2.1.78.jar
    10. osgi-resource-locator-1.0.1.jar
    11. validation-api-1.1.0.CR3.jar
Utilizzeremo queste librerie per creare un client REST e un servizio REST che espone un semplice metodo.
Il client sarà una standard Java Application mentre il servizio sarà realizzato come Web Application (Dynamic Web Project di Eclipse).

Nel prossimo post, scopriremo insieme come con poche e semplici righe di codice è possibile esporre una funzionalità service-oriented basata su REST.






Commenti

  1. Il post http://lancill.blogspot.it/2013/05/realizzare-un-servizio-rest-con-jax-rs.html descrive come realizzare un'applicazione REST

    RispondiElimina

Posta un commento

Post popolari in questo blog

Arrotondamento e troncamento in Java

Eclipse: Shortcuts (scorciatoie) da tastiera

Strutture dati: List, Set, Map

Creare un eseguibile Java