使用Grails中的Rest查找特定ID

时间:2016-03-22 15:45:12

标签: rest grails

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

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}

我必须做错事,但很简单,我无法看到它。

1 个答案:

答案 0 :(得分:1)

需要在@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"}