目前我已经设置了一个 RESTful API 来返回 1 个或多个 Book
(s) belongsTo
一个 Author
.虽然这是我想要的,但它不是我喜欢的格式。
当我为 Author
提供 ID 2 时,我得到以下响应:
<author id="2">
<author_name>Stephen</author_name>
<books>
<book id="2"/>
<book id="3"/>
</books>
</author>
相反,我想要一个显示书籍内容而不是引用的回复:
<list>
<book id="2">
<book_name>BookA</book_name>
<book_year>2001</book_year>
</book>
<book id="3">
<book_name>BookB</book_name>
<book_year>2005</book_year>
</book>
</list>
产生第一个响应的 Controller 的内容是:
@Override
protected Book queryForResource(Serializable id) {
def p = Author.id == params.AuthorId
Book.where {
id == id && p
}.find()
}
也可以按
book_year
排序吗?下降?任何帮助都感激不尽。
最佳答案
这是因为您使用的是默认的 marshellers。这里是 answer用于更改 JSON 响应。您必须对 XML 重复此操作。其他一切都是一样的。
关于rest - 返回 Grails 中另一个对象的 "belongsTo"对象列表(带有内容),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31217670/