使用JAX-RS和UrlMappings进行REST风格服务的Grails
问题描述:
我开始寻找Grails的JAX-RS插件,并认为这是要走的路,主要是因为它基于JSR-311,而我通过的标准是聪明的事情。然而,使用Grail的UrlMappings,我似乎基本上达到了同样的效果。我想我错过了一些东西,但是,我们没有做任何过于复杂的事情。我们基本上只需要通过API公开CRUD。使用JAX-RS和UrlMappings进行REST风格服务的Grails
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
}
显然,这是一种过于简单化的例子,就像我说的,也许我错过了一些重要的事情。另外,关于Grails构建机制的好处是我可以利用内容协商。
任何人对此有任何意见?
答
我必须作出相同的决定,并且我发现使用URL映射更容易,因为API不那么复杂,并且需要支持的API调用数量有限。
如果归结到基于LOE和能够支持实施的资源将更容易维护。
答
如果您直接在您的域模型中创建Web服务,则jax-rs插件非常有用。它为您提供了一个“生成资源”命令,可以为您的模型自动创建CRUD apis。
Grails的生成资源mydomain.Model
这部分似乎很好地工作,但是,我遇到了不少的bug /与我终于实现使用URL的映射的REST服务插件的问题。
虽然URL映射方法似乎更多的编码,它完美的作品。
import grails.converters.JSON
class ModelServiceController {
def id = params.id
def myModel = MyModel.findById(id)
render myModel as JSON
}
这里的链接Grails的REST
这是一种我如何倾斜,亚伦。我想如果事情变得更复杂,我可以随时更换机制。 – Gregg 2010-10-27 21:23:33