【发布时间】:2014-03-26 23:29:32
【问题描述】:
我正在使用 Grails 在 2.3 中引入的对 REST 的支持。我的应用包含以下域类:
@Resource(formats=['json', 'xml'])
class Sensor {
String name
static hasMany = [metrics: Metric]
}
@Resource(formats=['json', 'xml'])
class Metric {
String name
String value
static belongsTo = [sensor: Sensor]
}
在UrlMappings.groovy 中,我定义了以下嵌套的 RESTful URL 映射:
"/api/sensors"(resources: 'sensor') {
"/metrics"(resources: "metric")
}
如果我导航到 URL /api/sensors/1/metrics,我希望响应显示与 ID 为 1 的 Sensor 关联的所有 Metric 实例,但实际上它返回所有 Metric 实例(最多 10 个)
- 是否有一个 URL 将只返回与特定
Sensor实例关联的Metric实例(不实现我自己的控制器)? - 有没有办法覆盖 10 个结果的默认限制(不向请求添加
max参数)?
【问题讨论】:
-
关于在使用资源时更改限制,答案是否定的。之前已经对此进行了讨论。这种设计选择背后的原因是 Resource 的设计目的是快速和简单,生成和修改控制器作为下一级定制。我之前对此的回答指向 Grails 源代码,以证明 Resource 不允许这种自定义。
-
@JoshuaMoore 谢谢,你知道是否有可能为单个
Sensor实例获取Metric实例? -
从未使用过它们,但根据文档:grails.org/doc/2.3.x/guide/single.html#restfulMappings 这似乎是你所拥有的。
-
让我们知道是否有比提供的答案更好的方法。 :)