createLink到休息控制器

时间:2015-01-29 11:21:52

标签: rest grails

我已经定义了我的域对象

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,但没有任何作用。 我怎么能做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以在UrlMappings.groovy中进行更改

"/rest/product/$action/$id"(controller: 'productRest')

"/rest/media/$action/$id"(controller: 'mediaRest')