更改结果 grails findAll 或响应方法
Posted
技术标签:
【中文标题】更改结果 grails findAll 或响应方法【英文标题】:Alter result grails findAll or respond method 【发布时间】:2014-03-12 16:29:47 【问题描述】:目前我正在使用 Grails 开发 RESTFull。我使用 findAll 方法检索特定数据:
def query = PlannedEvent.where
query = query.whererooms.id == i
respond query.findAll()
以及产生输出的response方法:
"class":"mp.ra.PlannedEvent","id":480,"baseEvent":"class":"Event","id":1636,"equipment":[],"rooms":["class":"Room","id":22]
如何更改结果以便提供有关 baseEvent 和 Room 的更多信息。
类设置如下:
class PlannedEvent
Event baseEvent
static hasMany = [rooms:Room,equipment:Resource]
static belongsTo = [Room,Event,Resource]
static constraints =
equipment nullable:true
【问题讨论】:
【参考方案1】:您需要为您的 PlannedEvent 域类定制 JSON Marshaller。基本上你需要实现自己的 marshller 然后注册它。
这里有一个很好的blog post,介绍了如何实现您自己的自定义 JSON 编组。
通过这种方式,您可以准确控制所有内容如何编组为 JSON。
【讨论】:
提供的链接很有帮助,但是我如何根据请求返回不同的结果,例如:/plannedevents => 给出没有详细信息的列表,/plannedevents/1 => 给出来自计划事件的详细信息以上是关于更改结果 grails findAll 或响应方法的主要内容,如果未能解决你的问题,请参考以下文章
Grails findAll带有排序,顺序,最大值和偏移量?