2016-05-18 3 views
2

Я пытаюсь сделать разбиение на страницы. У меня есть работы, но у меня есть некоторые сомнения в том, как я получаю URL-адрес ресурса.Как получить ссылку ресурса для разбивки на страницы в katharsis

В моем репозитории ресурсов я вставляю ResourceRegistry ленивым способом (я знаю, что это круговая зависимость), чтобы получить URL-адрес моего ресурса, который затем я использую для создания моих ссылок.

String resourceUrl = resourceRegistry.getResourceUrl(Book.class); 

Это нормально работает, но круговая зависимость меня беспокоит. Есть ли какой-то статический класс для получения URL-адреса ресурса. Или, может быть, есть совершенно другой способ приблизиться к этому?

+0

Есть ли ссылка, которую вы пропустите, когда katharsis возвращает json? Вам не нужно создавать какую-либо ссылку самостоятельно. Вы видели '@ JsonApiToOne' и это братья и сестры на [Katharsis docs] (http://katharsis.io/docs)? – sorrymissjackson

+0

@sorrymissjackson Я говорю о атрибуте «ссылки на верхнем уровне», который я хочу использовать для разбивки на страницы, см. Http://jsonapi.org/. – user2793390

+0

Я вижу. Вы пробовали интерфейс LinksRepository для предоставления «LinksInformation» верхнего уровня? Хотя интерфейс, похоже, не помогает вам извлекать URL-адреса. Глядя быстро на сериализаторы katharsis, я не заметил другого способа получить URL (кроме ресурсаRegistry.getResourceUrl'). – sorrymissjackson

ответ

0

Возможно, это не удовлетворительный ответ, но катарсис создает ссылки в его сериализаторах. Вероятно, вы могли бы расширить один из сериализаторов katharsis и сообщить ему о дополнительной метаинформации, содержащей общее количество доступных элементов, которые клиент должен знать в любом случае. Из этих данных вы можете создать ссылки верхнего уровня для предыдущих и следующих страниц. В сериализаторах катарсиса все равно будут доступны resourceRegistry, а также QueryParams, содержащие исходные параметры разбивки на страницы. Это все очень гипотетично.

Предлагаемое решение по Катарсис дэвов будет:

@JsonApiFindAll 
public JsonApiResponse findAll() { 
    return new JsonApiResponse() 
     .setEntity(Collections.singletonList(new Task(1L, "John"))) 
     .setLinksInformation(new LinksInformation() { 
      public String self = "..."; 
      public String first = "..."; 
      public String prev = "..."; 
      public String next = "..."; 
      public String last = "..."; 
     }); 
} 

Взято отсюда:

Тем не менее, представляется необходимым колдования ссылки ,

 Смежные вопросы

  • Нет связанных вопросов^_^