我已经定义了我的域对象
class Product implements Serializable{
String sku
static hasMany = [images: MediaContent]
}
class MediaContent implements Serializable{
[...]
}
以及扩展RestFulController的REST控制器。特别是,ProductRestController如下: class ProductRestController扩展RestfulController {
static responseFormats = ['json']
ProductRestController(){
super(Product)
JSON.registerObjectMarshaller(Product){
return [
id: it.id,
media: createLink(controller:"mediaRest", id:it.imageId)
]
}
网址映射非常简单
"/rest/product" (resources:"productRest")
"/rest/media" (resources:"mediaRest")
问题是生成的createLink
指令链接不是其余格式/rest/media/1
而是/rest/media/index?id=1
。
这两个URL在调用时都有效,但只生成?id=
版本。
我也试过带有resource
属性的createLink,但没有任何作用。
我怎么能做到这一点?
答案 0 :(得分:1)
您可以在UrlMappings.groovy中进行更改
"/rest/product/$action/$id"(controller: 'productRest')
"/rest/media/$action/$id"(controller: 'mediaRest')