例如,假设我有一个看起来像这样的实体。
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 / people / 1
{
"firstName": "Bob",
"lastName": "Sagget"
}
获取/ people / 1 /汽车
[
{
"make": "Honda",
"model": "Accord",
"year": 1992
}
]
我觉得选项2更RESTful。但是我也想知道在每种情况下都需要完整的嵌套对象集的实例。在那种情况下,我还是应该这样设计吗?此外,如果Car实体具有嵌套对象怎么办?我需要第三个端点向下导航到cars子实体。
答案 0 :(得分:0)
如果将整个void
dto放在void
中,您将可以在同一页面上显示一个人和该人拥有的所有汽车,我认为这是一个更加用户友好的设计。
如果您为template <template <class...> class Check, typename Enable, typename... Types>
struct require_variadic_impl : std::false_type {};
template <template <class...> class Check, typename... Types>
struct require_variadic_impl<Check, void_t<Check<Types...>>, Types...> : std::true_type {};
template <template <class...> class Check, typename... Types>
struct require_variadic_tester : require_variadic_impl<Check, void, Types...> {};
cars
做一个单独的端点,那么用户将首先导航到people
页面,然后用户必须再次单击才能看到此{ {1}} person's
甚至可能需要加载其他页面