Grails的休息与@Resource - PUT没有更新(Grails REST with @

2019-10-20 05:28发布

我在学习Grails的(2.4.0)现在,并与自动生成的REST方法,一个奇怪的问题。

所以,我有一个简单的域

@Resource(uri = '/unit', formats = ['json'])
class Unit {
    String name;
}

我可以成功列表/创建/使用GET / POST删除实例/ DELETE方法,而是把方法不起作用:

curl -i -X PUT -H "Content-Type: application/json" -d '{"name":"fail", "id":65}' localhost:8080/app/unit/65
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Location: http://localhost:8080/app/unit/65
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Sun, 01 Jun 2014 09:25:02 GMT

{"class":"app.Unit","id":65,"name":"test"}

随后的GET请求也将返回名称:测试,而不是名称:失败

我可以做错了什么?

Answer 1:

这是只涉及到更新(不是新创建的实例)的错误。 我已经做了修正,我们将有包含在2.4.1此修复程序。 见https://jira.grails.org/browse/GRAILS-11462 。

它的短是更新正在与请求参数做,即使要求有一个机构。 解决方法是改变,所以当更新完成后,如果请求具有体则使用身体,如果没有,请求中使用的参数。

很抱歉的麻烦和感谢输入。



文章来源: Grails REST with @Resource - PUT is not updating
标签: rest grails