Как включить ссылки HAL Pagination в Grails 2.4.X

Grails 2.4.x поставляется с поддержкой HAL.

Несмотря на некоторые проблемы со встроенными ресурсами (https://jira.grails.org/browse/GRAILS-10954) я начинаю заставлять это работать. Однако я все еще не уверен, как обращаться со ссылками на страницы («предыдущая», «следующая»), как они показаны в документации.

Может ли HalJsonRenderer помочь с этим?


person Rafael    schedule 30.03.2015    source источник


Ответы (1)


Что я сделал, так это расширил 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()).

Он работает достаточно хорошо и не слишком сложен.

Однако, если есть другой способ, я буду рад узнать.

person Rafael    schedule 02.04.2015