Должны ли DTO представлять структуры вложенных сущностей или мне нужно настроить мой путь, чтобы иметь конечную точку для каждого вложенного объекта? - PullRequest
0 голосов
/ 01 октября 2019

Например, допустим, у меня есть объект, который выглядит следующим образом.

public class PersonEntity {
    public String firstName;
    public String lastName;
    public List<CarEntity> cars;
}

Опция 1
GET / people / 1

{
    "firstName": "Bob",
    "lastName": "Sagget,
    "cars": [
        (could be just IDs or the full Car DTOs)
    ]
}

Вариант 2
GET / чел. / 1 ​​

{
    "firstName": "Bob",
    "lastName": "Sagget"
}

GET / чел. / 1 ​​/ автомобили

[
    {
        "make": "Honda",
        "model": "Accord",
        "year": 1992
    }
]

Я чувствую, что вариант 2 более приятный. Но я также интересуюсь случаями, когда вам понадобится полный вложенный набор объектов в каждом сценарии. Должен ли я все еще спроектировать это так в этом случае? Кроме того, что если сущность Car имеет вложенные объекты? Мне понадобится третья конечная точка для навигации по машинам дочерних сущностей.

1 Ответ

0 голосов
/ 01 октября 2019

Если вы введете все cars dto в people, вы сможете отобразить человека и все автомобили этого человека на одной странице, которая, как мне кажется, более удобна для пользователя.

Если вы создадите отдельную конечную точку для person's cars, тогда пользователь сначала перейдет на страницу person's, а затем пользователь должен будет нажать еще раз, чтобы увидеть person's cars, который можетдаже требуется другая страница загрузки

...