Des tutoriels easy REST pour Java? [fermé]


Chaque tutoriel ou explication de REST se complique trop rapidement - la courbe d'apprentissage augmente si vite après l'explication initiale de CRUD et la supposée simplicité sur SOAP. Pourquoi les gens ne peuvent-ils plus écrire des tutoriels décents!

Je regarde Restlet - et ce n'est pas le meilleur, il manque des choses dans le tutoriel et la langue/grammaire est un peu confuse et peu claire. Il m'a fallu des heures pour démêler leurs premiers pas tutoriel (avec l'aide d'un autre Java programmeur!)

Commentaires du tutoriel RESTlet

Dans l'ensemble, je ne sais pas exactement à qui s'adressait le tutoriel - car il y a un bon degré de connaissances assumées, donc entrer dans REST et Restlet framework cold vous laisse avec beaucoup de "travail de rattrapage" à faire, et relire les paragraphes encore et encore.

  1. Nous avons eu du mal à comprendre que les pots devaient être copiés dans le dossier lib correct.

  2. Problèmes avec le web.XML création d'une erreur HTTP Status 500 -

Le serveur a rencontré un erreur () qui l'a empêché de répondre à cette demande

, le tutoriel dit:

"Créer une nouvelle application Web de servlet comme d'habitude, ajouter un "COM.firstStepsServlet " paquet et mettre la ressource et l'application classes."

Cela signifie que votre nom complet pour votre classe FirstStepsApplication est com.firstStepsServlet.FirstStepsApplication , nous avons donc dû modifier web.xml pour se référer à la classe correcte par exemple:

Original:

<param-value>
         firstStepsServlet.FirstStepsApplication
</param-value>

Devrait être:

<param-value>
         com.firstStepsServlet.FirstStepsApplication
</param-value>

Conclusion

J'avais l'impression que les concepts de REPOS étaient censés être beaucoup plus simples que le SAVON - mais cela semble tout aussi mauvais sinon plus compliqué - ne l'obtenez pas du tout! grrrr

Tous les bons liens - très apprécié.

Author: Alexander, 2008-12-02

8 answers

Il semble que vous pourriez utiliser une solide compréhension des principes fondamentaux de REST, et pour cela je recommande fortement RESTful Web Services par Leonard Richardson et Sam Ruby. Je fournit une excellente introduction à REST: ce que c'est et comment implémenter un service Web RESTful (pratique).

La plupart des exemples de code dans le livre sont en fait Ruby, mais il est assez facile à comprendre même si vous n'êtes pas un expert Ruby. Mais une chose qui devrait vous aider spécifiquement est celle ci des chapitres ultérieurs du livre contient des aperçus de plusieurs frameworks RESTful, y compris Restlet. Il n'entre vraiment dans aucun code (c'est un survol de 50 000 pieds) mais je pense que cela vous donnera exactement ce dont vous avez besoin à ce stade.

 9
Author: gregnostic, 2008-12-02 11:47:29

Pourriez-vous décrire précisément ce qui vous a causé des problèmes dans nos tutoriels Restlet? Nous sommes intéressés à corriger / améliorer ce qui doit.

Avez-vous vérifié les screencasts? http://www.restlet.org/documentation/1.1/screencast/

Sinon, il y a un tutoriel Restlet dans le livre O'Reilly que nous avons écrit dans leur chapitre 12.

Si vous avez encore des problèmes, veuillez contacter notre liste de diffusion: http://www.restlet.org/community/lists

Meilleur égard, Jérôme Louvel

Restlet ~ Fondateur et développeur principal ~ http://www.restlet.org Noelios Technologies ~ Co-fondateur ~ http://www.noelios.com

 14
Author: Jerome Louvel, 2008-12-02 12:01:05

Le framework Restlet est composé de quatre parties principales.

1. API Restlet

Tout d'abord, il y a l ' "API Restlet", une API neutre prenant en charge les concepts de REST et facilitant le traitement des appels pour les applications côté client et côté serveur. Cette API est soutenue par le moteur Restlet et les deux sont maintenant expédiés dans un seul JAR ("org.restlet.jar ").

Cette séparation entre l'API et l'implémentation est similaire à celle entre le API de servlet et conteneurs Web comme Jetty ou Tomcat, ou entre l'API JDBC et les pilotes JDBC concrets.

2. Récupération du contenu d'une page Web

Comme nous l'avons mentionné dans le document d'introduction, le framework Restlet est à la fois un framework client et un framework serveur. Par exemple, Restlet peut facilement travailler avec des ressources distantes à l'aide de son connecteur client HTTP. Un connecteur dans REST est un élément logiciel qui permet la communication entre les composants, généralement par implémentation d'un côté d'un protocole réseau. Restlet fournit plusieurs implémentations de connecteurs clients basés sur des projets open-source existants. La section Connecteurs répertorie tous les connecteurs client et serveur disponibles et explique comment les utiliser et les configurer.

Ici, nous allons obtenir la représentation d'une ressource existante et la sortir dans la console JVM:

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

Notez que l'exemple ci-dessus utilise un moyen simplifié d'émettre des appels via la classe ClientResource . Si vous besoin de multi-threading ou plus de contrôle il est toujours possible de manipuler utiliser directement la classe de connecteur Client ou les objets Request. L'exemple ci-dessous comment définir certaines préférences dans votre appel client, comme un URI de référent. Il pourrait également s'agir des langues et des types de médias que vous préférez recevoir en réponse:

// Create the client resource  
ClientResource resource = new ClientResource("http://www.restlet.org");  

// Customize the referrer property  
resource.setReferrerRef("http://www.mysite.org");  

// Write the response entity on the console  
resource.get().write(System.out);  

3. Écoute des navigateurs Web

Maintenant, nous voulons voir comment le framework Restlet peut écouter les demandes des clients et y répondre. Nous utilisera le connecteur de serveur HTTP Restlet interne (même s'il est possible de passer à d'autres tels que celui basé sur Mortbay's Jetty) et retournera une simple représentation de chaîne "hello, world" en texte brut. Notez que la classePart03 étend la classe de base ServerResource fournie par Restlet:

 public class Part03 extends ServerResource {  

    public static void main(String[] args) throws Exception {  
        // Create the HTTP server and listen on port 8182  
        new Server(Protocol.HTTP, 8182, Part03.class).start();  
    }  

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

}  

Si vous exécutez ce code et lancez votre serveur, vous pouvez ouvrir un navigateur Web et appuyez sur le . En fait, tout URI fonctionnera, essayez aussi. Notez que si vous testez votre serveur à partir d'une machine différente, vous devez remplacer "localhost" par l'adresse IP de votre serveur ou son nom de domaine s'il en a un défini.

Jusqu'à présent, nous vous avons principalement montré le plus haut niveau d'abstraction dans l'API Restlet, avec les classes ClientResource et ServerResource. Mais à mesure que nous avançons, vous découvrirez que ces deux classes sont prises en charge par une API riche, vous permettant de manipuler tous les artefacts REST.

4. Vue d'ensemble d'un REPOS architecture

Prenons un peu de recul et considérons les architectures Web typiques d'un point de vue REPOS. Dans le diagramme ci-dessous, les ports représentent le connecteur qui permet la communication entre les composants qui sont représentés par les boîtes plus grandes.

 6
Author: PIXAR, 2013-03-04 13:40:05

Pas spécifiquement lié à Java, mais je pensais que ces articles InfoQ étaient assez bons:

 4
Author: Dan Dyer, 2008-12-02 16:05:49

Vous pointez vers une erreur dans le web.xml, mais je viens de vérifier à la fois la documentation Restlet 1.0 et 1.1, et je ne vois pas ce genre d'erreur. Je voudrais mentionner que vous pouvez trouver à la fin de la page un zip qui contient un fichier war complet et la liste des fichiers source au cas où vous voudriez exécuter en mode "autonome". Avez-vous essayé le mode autonome? Comme expliqué dans le tuto, vous n'avez besoin que de 2 pots dans le chemin de classe et des fichiers source.

Nous voudrions également souligner que le Le tutoriel "firstSteps" n'est pas un tutoriel sur REST mais sur la programmation avec Restlet. Vous pouvez également consulter le tutoriel "firstResource" ( http://www.restlet.org/documentation/1.1/firstResource) qui décrit comment développer une ressource simple et qui introduit quelques concepts du style d'architecture REST. Il devrait vous aider.

 2
Author: Alexander, 2013-03-07 22:40:03

De plus, le nom qualifié suggéré dans le tutoriel est en effet "firstStepsServlet.FirstStepsApplication "et non" com.firstStepsServlet.FirstStepsApplication".

Par conséquent, la valeur param suggérée dans web.xml est correct.

Pourriez-vous confirmer que cela résout votre problème? De plus, aviez-vous des connaissances sur le déploiement de servlets avant de lire le tutoriel? Si non, qui pourrait expliquer la douleur. Dans ce cas, le mode autonome est probablement un meilleur ajustement.

 1
Author: Jerome Louvel, 2008-12-02 19:28:03

Voici un tutoriel bien écrit sur REST.. http://rest.elkstein.org/2008/02/what-is-rest.html

 1
Author: Sunil Rodrigues, 2012-12-28 17:31:22

La société ESoftHead vient de publier uncourt tutoriel de développement d'une application Restful en utilisant RESTeasy.

 -2
Author: Glitch, 2012-06-21 07:19:07