我正在设计一个REST服务,它需要创建一个引用各种其他项目作为子项目的项目。该服务提供了将可用子项作为选项进行检索的方法,这些选项可以作为键/值对绑定到下拉列表中。我的问题是,在创建新的顶级项目时,最好的做法是将整个子项目包含在字段中,还是只包含引用它的ID?使用子元素设计休息服务的最佳做法
例如,如果我有一项服务使用户能够为笔记本电脑指定处理器和RAM。将会有一个方法GET /processors
,它将返回将触发对象创建的处理器列表和POST /laptops
。下面两种有效载荷中的哪一种被认为是最佳做法?
POST /笔记本电脑
{
"processor": 123,
"ram" 16
}
POST /笔记本电脑
{
"processor": {"id":123, "manufacturer": "Intel", "model": "i5-4670k"}
"ram" 16
}
当检索的笔记本电脑我会回到这样的事情:
GET /笔记本电脑
[{
"id:" 3000,
"processor": {"id":123, "manufacturer": "Intel", "model": "i5-4670k"}
"ram" 16
}]