rest - 使用Grails中的Rest查找特定ID

标签 rest grails

我正在探索Grails 3.1.4中的RESTful域功能,并且得到了奇怪的结果。例如,我有这个域对象(没有对应的 Controller ):

package resttest

import grails.rest.*

@Resource(readOnly = false, formats = ['json', 'xml'])
class Book {
    String name
}

查询所有对象似乎可以正常工作:
$ curl http://localhost:8080/book
[{"id":1,"name":"The Time Machine"},{"id":2,"name":"Moby Dick"}]

但是获取特定对象失败:
$ curl http://localhost:8080/book/1
{"message":"Not Found","error":404}

我一定做错了什么,但简单的我看不到。

最佳答案

需要在@Resource中提供有效的uri,之后可以访问端点。我将为Book资源使用以下内容(注意,使用复数books而不是book)。

import grails.rest.Resource

@Resource(uri = "/books", readOnly = false, formats = ['json', 'xml'])
class Book {
    String name
}

结果:
$ curl http://localhost:8080/books
[{"id":1,"name":"The Time Machine"},{"id":2,"name":"Moby Dick"}]
$ curl http://localhost:8080/books/1
{"id":1,"name":"The Time Machine"}

关于rest - 使用Grails中的Rest查找特定ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36158963/

相关文章:

objective-c - iOS Restkit中的日期时间格式问题

grails - Tomcat 7:JDBC驱动程序已被强制注销

rest - 嵌套的 RESTful 资源

grails - 如何更改Geb页面的默认模板选项?

带有 Struts 的 REST API

java - 从 Android 连接到 Jersey REST Web 服务

rest - 我应该在 RESTful 服务中拥有多个资源 View /端点吗?

java - 将屏幕截图附加到 Rally 测试用例结果

grails - 在Groovy/Grails中使用特定语言环境调用TimeCategory

grails - Grails BootStrap:无方法签名:* .addTo *适用