Question

Quels sont les meilleurs cadres pour la mise en œuvre client et serveur cadres REST en Java? J'ai eu du mal un peu pour trouver une solution facile à utiliser.

Mise à jour : Les deux Jersey et Restlet semblent comme de bonnes options. Nous allons probablement utiliser Restlet mais nous allons expérimenter avec les deux.

Était-ce utile?

La solution

Restlet sonne comme il devrait fournir ce que vous cherchez:

  • Prise en charge de client et le serveur (dans un api relativement symétrique)
  • lier url puce
  • compréhension de type MIME (données types MIME, il vous demandera vos ressources pour leur représentation dans ce type)
  • Prise en charge des annotations JAX-RS (comme Jersey)

Autres conseils

Jersey est vraiment facile pour les deux. Pour écrire des services Web, vous utilisez des annotations:

@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";
    }
}

Pour 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

Jetez un oeil à dropwizard aussi.

Restlet prennent également en charge des annotations dans sa version 2.0, à la fois sur le client et côté serveur. L'API JAX-RS est également pris en charge comme une extension.

Voici un exemple simple pour côté serveur:

public class HelloWorldResource extends ServerResource {

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

}

Sur le côté client:

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

Pour d'autres documentations, vérifier cette page .

Il y a nouvelle bibliothèque RESTEasy JBoss. Il semble être en cours de développement rapide depuis son lancement initial. Je ne sais pas si c'est une bonne; il est sur ma liste « vérifier ».

Vous pouvez jeter un oeil à la mise en œuvre CXF JAX-RS. Pour obtenir une liste complète de ses caractéristiques consultez le CXF site web JAX-RS. La communauté derrière le projet semble être très actif (Juillet 2013). Une indication de cela est le nombre de messages par jour dans le CXF listes de diffusion .

Je ne l'ai pas utilisé personnellement, mais certaines équipes que je travaille utilisent Spring MVC 3. REST au printemps 3: @MVC ressemble à un bon aperçu de billet de blog. Les caractéristiques comprennent RESTful "URI Modèles", "la négociation de contenu", "HTTP Méthode de conversion", "support ETag" et plus encore.

Modifier : Voir aussi cette question: quelqu'un peut-il recommander un framework web Java qui est basée sur MVC et prend en charge REST?

Je peux recommander Apache clin d'oeil, un nouveau cadre toujours en mode d'incubation, mais très mature et de haute qualité.

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

Il implémente la spécification JAX-RS, il a à la fois framework client et serveur pour le développement REST. Apache se tient derrière ce projet - qui est toujours un bon signe (et une bonne licence :-))

Ce que j'aime le plus dans ce cadre est l'intégration intuitive avec le printemps, il est très utile si vous voulez que votre cadre soit facilement configuré et étendu.

MISE À JOUR: Xydra sans repos ne plus maintenu +++ Si que vous utilisez Goolge AppEngine avant qu'ils ne libèrent une fonction « instance réserve », vous pourriez envisager Xydra sans repos qui a quelques fonctionnalités, mais se charge rapidement.

Mon préféré est le printemps MVC , vous avez le soutien à la fois, le client et côté serveur ... et vous avez le soutien Android aussi =)

Par exemple, vous pouvez voir un exemple de printemps Android

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top