Сериализация объекта Spring Data Page в JSON с помощью Spring Boot 2? - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь обновить свой проект Spring Boot 1.5 до Spring Boot 2.0.2.Это включает в себя также обновление для Spring Data 2.x.

Я заметил, что представление JSON Page изменилось.Теперь он выглядит следующим образом:

{
    "content": [{
        "id": "96ab09c6-2cfc-4195-899b-899b623e6e97",
        "title": "Test Title",
        "shortDescription": "Short description",
        "description": "Test Description",
        "date": "2018-02-14",
        "imageUrl": "/api/images/newsposts/f637e6bd-a13a-4ebc-8c58-8ba639e09f70"
    }],
    "pageable": "INSTANCE",
    "totalPages": 1,
    "totalElements": 1,
    "last": true,
    "size": 0,
    "number": 0,
    "first": true,
    "numberOfElements": 1,
    "sort": {
        "unsorted": true,
        "sorted": false
    }
}

Если он отсортирован, он выглядит примерно так:

    "pageable": {
        "sort": {
            "sorted": true,
            "unsorted": false
        },
        "offset": 0,
        "pageSize": 20,
        "pageNumber": 0,
        "paged": true,
        "unpaged": false
    },
    "totalElements": 1,
    "last": true,
    "totalPages": 1,
    "size": 20,
    "number": 0,
    "first": true,
    "numberOfElements": 1,
    "sort": {
        "sorted": true,
        "unsorted": false
    }

Обратите внимание на элемент pageable, которого не было раньше.Также элемент sort не очень полезен.Это то, что было задумано?Или это просто плохая идея вернуть org.springframework.data.domain.Page объект в мой контроллер REST?

1 Ответ

0 голосов
/ 14 мая 2018

APIwise, Spring имеет тенденцию быть очень обратно совместимым.

Это может быть одним из незначительных случаев обратной несовместимости, но Pageable является конструкцией, специфичной для Spring, и кто скажет, что она никогда не изменится.В зависимости от одного из классов данных реализации Spring до тех пор, пока уровень REST не покажется правильным.Было бы хорошо справиться с этим изменением на уровне сервиса.

Это очень хороший пример, который показывает преимущества «многоуровневой» архитектуры :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...