33 votes

Des tutoriels REST faciles pour Java?

Chaque tutoriel ou une explication de REPOS, tout va trop compliqué, trop rapide, la courbe d'apprentissage augmente si vite après la première explication de CRUD et la simplicité supposée plus de SAVON. Pourquoi pas des gens écrire décent, des tutoriels plus!

Je suis à la recherche d'Restlet - et ce n'est pas le meilleur, il y a des choses qui manquent dans le tutoriel et de la langue, de la grammaire est un peu confus et incertain. Il a m'a pris des heures à démêler leurs Premières Étapes du tutoriel (avec l'aide d'un autre programmeur Java!)

RESTlet Tutoriel Commentaires

Dans l'ensemble je ne suis pas sûr exactement de qui le tutoriel a été dirigée, car il y a un juste degré de supposé savoir tout rond, donc, à venir dans le REPOS et Restlet framework froid vous laisse avec beaucoup de "rattrapage" travail à faire, et la re-lecture des paragraphes, encore et encore.

  1. Nous avons eu de la difficulté à travailler que les pots ont dû être copié dans le bon dossier lib.

  2. Des problèmes avec web.xml la création d'un Statut HTTP 500 erreur

Le serveur a rencontré une interne erreur () qui l'a empêché de l'accomplissement de cette demande

le tutoriel dit:

"Créer une nouvelle application Web Servlet comme d'habitude, ajouter un "com.firstStepsServlet de package et de mettre la ressource et de la demande classes."

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

origine:

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

devrait être:

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

Conclusion

J'étais sous l'impression que les concepts de REPOS étaient censés être beaucoup plus simple que de SAVON, mais il semble tout aussi mauvais, si ce n'est plus compliqué de ne pas en avoir du tout! grrrr

Tout bon des liens très apprécié.

14voto

Jerome Louvel Points 289

Pourriez-vous décrire précisément ce que vous a causé des problèmes dans notre Restlet des tutoriels? Nous nous sommes intéressés à la fixation ou d'améliorer ce qui doit.

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

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

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

Meilleures salutations, Jérôme Louvel

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

9voto

gregnostic Points 656

Il semble que vous pourriez utiliser une solide compréhension des principes fondamentaux de REPOS, et pour que je hautement recommander les Services Web RESTful par Leonard Richardson et Sam Ruby. J'offre une excellente introduction au REPOS: ce que c'est et comment le mettre en œuvre une pratique de service web RESTful.

La plupart de l'exemple de code dans le livre est en fait le Rubis, mais il est assez facile à comprendre, même si vous n'êtes pas un expert Ruby. Mais une chose qui devrait vous aider plus précisément, c'est que l'un des derniers chapitres du livre contient des aperçus de plusieurs Reposant cadres, y compris Restlet. Il n'est pas réellement dans le code (c'est un de 50 000 pieds pont) mais je pense que ça va vous donner ce dont vous avez besoin à ce stade.

6voto

PIXAR Points 61

Le Restlet framework est composé de quatre parties principales.

1. Restlet API

Tout d'abord, il y a le "Restlet API", un neutre API soutenir les notions de REPOS et de faciliter le traitement des appels pour à la fois côté client et côté serveur d'applications. Cette API est soutenu par le Restlet Moteur et les deux sont maintenant expédiés en un seul POT ("org.restlet.jar").

Cette séparation entre l'API et la mise en œuvre est similaire à celle entre la Servlet API et des conteneurs Web comme Jetty ou Tomcat, ou entre l'API JDBC et le béton pilotes JDBC.

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

Comme nous l'avons mentionné dans l'introduction du papier, de la Restlet framework est à la fois un client et un serveur de cadre. Par exemple, Restlet pouvez facilement travailler avec des ressources distantes à l'aide de son connecteur client HTTP. Un connecteur de REPOS est un élément logiciel qui permet la communication entre les composants, généralement par la mise en œuvre d'un côté d'un protocole réseau. Restlet fournit plusieurs mises en œuvre de client connecteurs basés sur des projets open-source. Les connecteurs de la section de la liste de toutes les client et le serveur de connecteurs et d'expliquer comment l'utiliser et le configurer.

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

// 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 à partir de la ClientResource classe. Si vous avez besoin de multi-threading ou plus de contrôle, il est encore possible de manipuler utiliser le Client connecteur de la classe ou de la Demande des objets directement. L'exemple ci-dessous comment définir certaines préférences de votre appel, comme une référence d'URI. Il pourrait également être les langues et les types de médias que vous préférez les recevoir comme 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. L'écoute des navigateurs Web

Maintenant, nous voulons voir comment le Restlet framework peut écouter les demandes du client et d'y répondre. Nous allons utiliser l'interne Restlet serveur HTTP connecteur (même si il est possible de passer à d'autres comme l'une basée sur Mortbay de la Jetée) et le retour d'une simple représentation de chaîne "hello, world" en tant que texte brut. Notez que le Part03 classe étend la base de ServerResource classe 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 lancer votre serveur, vous pouvez ouvrir un navigateur Web et a frappé le . En fait, tout URI de travail, essayez aussi. Notez que si vous testez votre serveur à partir d'un autre ordinateur, vous devez remplacer "localhost" par l'adresse IP de votre serveur ou son nom de domaine, si il en a un) définie.

Jusqu'à présent, nous avons surtout montré le plus haut niveau d'abstraction dans la Restlet API, avec la ClientResource et ServerResource classes. 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 tout le RESTE des artefacts.

4. Vue d'ensemble d'une architecture REST

Revenons un peu en arrière et de considérer typique, les architectures web à partir d'un point de vue. Dans le diagramme ci-dessous, les ports représentent le connecteur qui permet la communication entre les composants qui sont représentées par les plus grandes boîtes.

4voto

Dan Dyer Points 30082

Pas spécifiquement lié à Java, mais j'ai trouvé ces articles sur InfoQ plutôt bons:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X