Domanda

Quali sono le migliori strutture per l'attuazione sia client che server framework REST in Java? Ho lottato un po 'per trovare una soluzione facile da usare.

Aggiorna : Sia Jersey e Restlet sembrano buone opzioni. Noi probabilmente usiamo Restlet ma noi sperimentiamo sia.

È stato utile?

Soluzione

Restlet suona come dovrebbe fornire quello che stai cercando:

  • Il supporto per client e server (in un api relativamente simmetrica)
  • Smart vincolante url
  • tipo mime intesa (determinati tipi MIME accettati, chiederà le risorse per la loro rappresentazione in quel tipo)
  • Supporta JAX-RS annotazioni (come Jersey)

Altri suggerimenti

Jersey è davvero facile per entrambi. Per scrivere i servizi web, è possibile utilizzare le annotazioni:

@Path("/helloworld")
public class HelloWorldResource {

    // The Java method will process HTTP GET requests
    @GET
    // The Java method will produce content identified by the MIME Media
    // type "text/plain"
    @Produces("text/plain")
    public String helloWorld() {
        // Return some cliched textual content
        return "Hello World";
    }
}

Per un client:

Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/helloworld");
String s = webResource.get(String.class);
System.out.println(s); // prints Hello World

Date un'occhiata a dropwizard troppo.

Restlet anche il supporto di annotazioni nella sua versione 2.0, sia sul client e lato server. L'API JAX-RS è supportato anche come estensione.

Ecco un semplice esempio per lato server:

public class HelloWorldResource extends ServerResource {

    @Get
    public String represent() {
        return "hello, world";
    }

}

Sul lato client:

// Outputting the content of a Web page  
new ClientResource("http://www.restlet.org").get().write(System.out);

La documentazione, controllare questa pagina .

C'è JBoss' nuova RESTEasy biblioteca. Sembra essere in rapido sviluppo dal suo lancio iniziale. Non ho idea se si tratta di un bene; è sulla mia 'controllarlo fuori' elenco.

Si potrebbe dare un'occhiata al l'attuazione JAX-RS CXF. Per l'elenco completo delle sue caratteristiche controllare la href="http://cxf.apache.org/docs/jax-rs.html" rel="nofollow"> sito web CXF . La comunità alla base del progetto sembra essere molto attivo (luglio 2013). Un'indicazione di questo è il numero di messaggi al giorno nel CXF mailing list .

Non ho usato personalmente, ma alcuni team con cui lavoro stanno utilizzando Spring 3 MVC. riposo in Spring 3: @MVC si presenta come una buona panoramica post sul blog. Le caratteristiche includono RESTful "Modelli URI", "Negoziazione Content", "HTTP metodo di conversione", "sostegno ETag" e altro ancora.

Modifica : Inoltre, si veda questa domanda: qualcuno può raccomandare un framework web Java che si basa su MVC e supporta REST?

posso consigliare Apache occhiolino, un nuovo quadro ancora in modalità di incubazione, ma di qualità molto maturo e alto.

http://incubator.apache.org/wink/

Si implementa le specifiche JAX-RS, che ha sia framework client e server per lo sviluppo REST. Apache è in piedi dietro a questo progetto - che è sempre un buon segno (e una buona licenza :-))

Quello che mi piace di più di questo quadro è l'integrazione intuitiva con la Primavera, è molto utile se si desidera che il quadro di riferimento per essere configurato ed esteso con facilità.

UPDATE: Xydra Restless non è più mantenuto +++ Se usate Goolge AppEngine prima di rilasciare una caratteristica "riserva esempio", si potrebbe considerare Xydra Restless che ha alcune caratteristiche, ma carichi veloce.

Il mio preferito è Primavera MVC , avete il supporto per entrambi, client e lato server ... e hanno il supporto Android troppo =)

Per esempio, si può vedere un esempio di primavera Android qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top