Получить TotalPages ответа - PullRequest
0 голосов
/ 05 мая 2018

У меня есть следующий контроллер на сервере:

@RestController
class PersonController {

   final PersonService personService;

   @Autowired
   PersonController( PersonService personService ){
      this.personService = personService
   }

   @RequestMapping(value="/persons",method=RequestMethod.GET)
   Page<Person> list( Pageable pageable){
      Page<Person> persons = personService.listAllByPage(pageable);
   } 
}

Ответ json выглядит так, как ожидалось. Включает в себя содержание и общее количество страниц:

{
    "content": [
        {
            "id": 1234,
            "name": "string",
        },
    ],
    "pageable": {
        "sort": {
            "sorted": false,
            "unsorted": true
        },
        "offset": 0,
        "pageSize": 5,
        "pageNumber": 0,
        "paged": true,
        "unpaged": false
    },
    "totalPages": 1,
    "totalElements": 1,
    "last": true,
    "number": 0,
    "size": 5,
    "sort": {
        "sorted": false,
        "unsorted": true
    },
    "numberOfElements": 1,
    "first": true
}

Связанный клиентский метод выглядит следующим образом:

public List<PersonDTO> findAllPerPage(final Pageable pageable) throws DataAccessException {
    try {
        UriComponentsBuilder builder = UriComponentsBuilder.
            fromUri(restClient.getServiceURI(PERSON_URL))
            .queryParam("page", pageable.getPageNumber())
            .queryParam("size", pageable.getPageSize());
        ResponseEntity<PagedResources<PersonDTO>> response =
            restClient.exchange(
                builder.toUriString(),
                HttpMethod.GET,
                null,
                new ParameterizedTypeReference<PagedResources<PersonDTO>>() {
                });
        return new ArrayList<>(response.getBody().getContent());
    } catch (Exception e) {
        throw new DataAccessException(e.getMessage(), e);
    }
}

Мой вопрос заключается в том, как легко получить totalPages из ответа. Проблема в том, что метаданные ответа имеют нулевое значение, и я не знаю, почему?

...