我正在探索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}
我必须做错事,但很简单,我无法看到它。
答案 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"}