DTO应该代表嵌套的实体结构,还是应该将我的路径设置为每个嵌套对象都有一个端点?

问题描述 投票:0回答:1

例如,假设我有一个看起来像这样的实体。

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

选项1GET / people / 1

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

选项2GET / people / 1

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

GET / people / 1 / cars

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

我觉得选项2更RESTful。但是我也想知道在每种情况下都需要完整的嵌套对象集的实例。在那种情况下,我还是应该这样设计吗?此外,如果Car实体具有嵌套对象怎么办?我需要第三个端点向下导航到cars子实体。

rest http design-patterns api-design dto
1个回答
0
投票

如果将整个cars dto放在people中,您将可以在同一页面上显示一个人和该人拥有的所有汽车,我认为这是更人性化的设计。

如果为person's cars创建单独的端点,则用户将首先导航至person's页面,然后用户将不得不再次单击以查看此person's cars,这可能甚至需要另一个页面加载

© www.soinside.com 2019 - 2024. All rights reserved.