2013-01-02 4 views
2

Ce post a été publié il y a longtemps: RESTful on Play! framework Illustré une approche très élégante pour concevoir des services Web RESTful sur Play! 1.x avec Java.RESTful sur Play! 2.0 Framework

Je travaille avec Play! v2 et je me demande comment il est facile de migrer cette approche vers la nouvelle version. Dès le départ, je vois que la méthode de rendu n'existe plus, alors je me demandais si des changements majeurs dans l'architecture empêchaient l'utilisation de ce processus.

Ce poste: Play 2.0 RESTful request post-processing illustre une partie du traitement à base 2.0, mais il est fait à Scala et j'ai un diable de temps l'analyse syntaxique à travers elle

+0

Jetez un oeil dans les docs, ne peux pas le faire maintenant, mais je vais vous montrer quelques exemples simples plus tard (ou peut-être quelqu'un d'autre va ...) de toute façon pourquoi pensez-vous qu'il n'existe pas de méthode 'render' plus? :) – biesior

+0

Je l'ai juste effacé en éclipse, la méthode de rendu a renvoyé une erreur ... donc j'ai juste supposé que ça ne fonctionnait pas. Je suppose que vous dites que c'est là - laissez-moi vérifier. – IcedDante

+1

ooooh ... c'est la faute d'Eclipse :) vérifiez les échantillons et les docs, recherchez aussi Stack Overflow pour les sujets de jeu et de travail dans Eclipse. – biesior

Répondre

4

L'ensemble du processus en jeu 2.0 sera très similaire à la seulement petites différences seront dans la syntaxe, jetez un oeil dans la documentation.

routes

# REST actions 
GET  /user/:id controllers.Rest.user(id: Int) 
POST /user  controllers.Rest.createUser 
PUT  /user/:id controllers.Rest.updateUser(id: Int) 
DELETE /user/:id controllers.Rest.deleteUser(id: Int) 

Edit:

Bien sûr, vous pouvez utiliser Accept tête au lieu de format paramètre, mais juste ... param est plus facile à définir. Vous pouvez également utiliser ie. nom user.scala.xml pour la vue, et dans le contrôleur rendu avec: return ok(views.xml.user.render(user).body());

I publié cet échantillon sur le GitHub avec quelques corrections, de sorte que vous pouvez essayer vous-même: play-simple-rest

Notez que vous devez garder Rest.java contrôleur (et ses routes) alors que tout dans Application est juste pour l'affichage et la démonstration (c'est-à-dire faire des appels GET/POST/PUT/DELETE dans les contrôleurs).

+0

Biesior- réponse impressionnante. Merci beaucoup. Une question: l'utilisateur fournit le type de contenu via le paramètre "format". Si vous regardez le premier lien que j'ai posté dans ma question, il semble que le type de réponse soit compris dans la requête. Cette solution est-elle encore possible ici? – IcedDante

+0

Allez-vous utiliser cette API avec jQuery uniquement ou avec d'autres clients tiers? – biesior

+0

Je ne prévoyais pas d'utiliser jQuery du tout - en ce moment, en utilisant quelques clients de Jersey pour me connecter à des fins différentes ... mais pourquoi ces services seraient-ils spécifiques à un client? – IcedDante

Questions connexes