Как получить все данные в пагинации по URL - PullRequest
1 голос
/ 10 апреля 2019

У меня проблема с тем, что я хочу выполнить итерацию по страницам из API, я хочу сделать функцию экспорта, но с использованием нумерации страниц, и моя проблема, я перепутал, как итерировать, у API есть нумерация страниц.

private Document getProcessInstances(String status, int page, int size, String sort) {
    StringBuilder url = new StringBuilder();

    url.append(activitiqueryhost)
        .append("/v1/process-instances?status=")
        .append(status)
        .append("&page=")
        .append(page)
        .append("&size=")
        .append(size)
        .append("&sort=")
        .append(sort);
    System.out.println(" >>>>>>>>>> URL=" + url.toString());

    try {
        ResponseEntity<String> processinstancestring = this.get(url.toString());        
        System.out.println("processinstancestring=" + processinstancestring.getBody());
        Document processinstance = Document.parse(processinstancestring.getBody());
        System.out.println(">>>>> processinstance=" + processinstance.toJson());
        Document processinstancelist = (Document) processinstance.get("list");
        System.out.println(">>>>> list=" + processinstancelist.toJson());
    }

    return processinstancelist;
}

[Решено] спасибо за вопрос, я решил эту проблему, поэтому я создал новый метод для получения totalItems из нумерации страниц и повторения его.

1 Ответ

0 голосов
/ 10 апреля 2019

Не уверен, если я правильно понял.Например, если вам нужно разбить на страницы результат, который вы получаете из своего хранилища данных.Вам необходимо выполнить следующие 2 шага

  1. Получить объект Pageable, который задает информацию о запрашиваемой странице.
  2. Передать объект Pageable в правильный метод репозитория в качестве параметра метода.

Согласно весенним документам, в верхней части CrudRepository есть абстракция PagingAndSortingRepository, которая добавляет дополнительные методы для облегчения разбиения на страницы для сущностей (ссылка на документ)

В вашем классе Controller вы можете сформировать объект Pageable и передать его в репозиторий.

Кроме того, вы можете установить spring.data.web.pageable.default-page-size=5 в вашем application.properties, чтобы установить размер страницы по умолчанию.

Вы можете попробовать запустить приведенный ниже проект и посмотреть, поможет ли он

https://github.com/sidd081/spring-boot-sampless

...