2010-10-27 5 views
1

J'ai commencé à regarder le plugin JAX-RS pour les grails et je pensais que c'était la voie à suivre principalement parce qu'il était basé sur JSR-311 et que je figure les normes suivantes: la chose intelligente à faire. Cependant, en utilisant UrlMappings de Grail, il semble que je réalise fondamentalement la même chose. Je me dis qu'il me manque quelque chose, cependant, nous ne faisons rien de trop complexe. Nous avons simplement besoin d'exposer CRUD via une API. Exemple de faire la même chose avec les deux versions:Grails avec JAX-RS vs UrlMappings pour les services RESTful

JAX-RS:

@PUT 
@Consumes(['application/json']) 
@Produces(['application/json']) 
Response putUser(User user) { 
    user.save(flush:true) 
    ok user 
} 

Grails:

def update = { 
    def user = new User(params['user']) 
    user.save(flush:true) 
    render user as JSON 
} 

Évidemment, ceci est un exemple trop simpliste et comme je l'ai dit, peut-être que je Il me manque quelque chose d'important. En outre, la bonne chose à propos du mécanisme intégré Grails est que je peux utiliser la négociation de contenu avec elle.

Vous avez des avis à ce sujet?

Répondre

1

J'ai dû prendre la même décision, et j'ai trouvé qu'il était plus simple d'utiliser les mappages d'URL car l'API n'était pas si complexe et il y avait un nombre limité d'appels d'API qui devaient être supportés. Si cela revenait à ce qui serait plus facile à maintenir en fonction de la LOE et les ressources capables de soutenir la mise en œuvre.

+0

C'est le genre de la façon dont je penche, Aaron. Je suppose que si les choses deviennent plus complexes plus tard, je peux toujours changer le mécanisme. – Gregg

0

Le plugin jax-rs est très utile si vous créez des services Web directement sur vos modèles de domaine. Il vous donne une commande "generate-resource" qui crée automatiquement des apis CRUD pour votre modèle.

Grails génèrent des ressources mydomain.Model

Cette partie semble fonctionner très bien, cependant, j'ai rencontré pas mal de bugs/problèmes avec le plugin que j'avais enfin de mettre en œuvre les services REST à l'aide d'URL applications. Bien que la méthode de mappage d'URL semble plus codée, elle fonctionne parfaitement.

import grails.converters.JSON 

class ModelServiceController { 
    def id = params.id 
    def myModel = MyModel.findById(id) 
    render myModel as JSON 
} 

Voici le lien pour Grails REPOS

http://grails.org/doc/1.0.x/guide/13.%20Web%20Services.html

Questions connexes