例如,假设我有一个看起来像这样的实体。
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子实体。
如果将整个cars
dto放在people
中,您将可以在同一页面上显示一个人和该人拥有的所有汽车,我认为这是更人性化的设计。
如果为person's
cars
创建单独的端点,则用户将首先导航至person's
页面,然后用户将不得不再次单击以查看此person's
cars
,这可能甚至需要另一个页面加载