如何在Grails 2.4.X上启用HAL分页链接

时间:2015-03-30 21:37:17

标签: grails renderer hateoas

Grails 2.4.x附带了对HAL的支持。

尽管嵌入式资源存在一些问题(https://jira.grails.org/browse/GRAILS-10954),但我开始让它发挥作用。但是我仍然不确定如何处理分页链接(“prev”,“next”),因为它们显示在文档中。

HalJsonRenderer有什么办法可以帮助解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我所做的是扩展HalJsonCollectionRenderer并覆盖此方法:

protected void writeLinkForCurrentPath(RenderContext context, MimeType mimeType, JsonWriter writer) {
    final href = linkGenerator.link(uri: context.resourcePath, method: HttpMethod.GET.toString(), absolute: absoluteLinks)
    final resourceRef = href
    final locale = context.locale
    def link = new Link(RELATIONSHIP_SELF, href)
    link.title = getResourceTitle(resourceRef, locale)
    link.contentType = mimeType ? mimeType.name : null

    writeLink(link, locale, writer)
}

添加PREV和NEXT的链接以在需要时进行渲染。

为了做到这一点,我们需要访问查询字符串参数,可以在RenderContext对象中作为参数访问(context.getArguments())

效果很好,并不太复杂。

然而,如果这是另一种我很乐意知道的方式。