我正在设计一个RESTful API,想弄清楚如何显示和更新资源的外键。
假设我有一个User对象,它有一个id、名称和一个指向实体Computer的外键(多对一关系)。
在大多数在线示例中,我看到的是:
GET /users/1
{
id: 1,
name: "Bob",
computer: "<url>/computers/5"
}
我能理解,这是一个指向另一个资源的链接。但如果您想为Bob选择另一台计算机,该怎么办呢?
PUT /users/1
{
name: "Bob",
computer: "<url>/computers/4"
}
感觉很奇怪。我还在考虑以下情况:假设实现API的人可以使用下拉框为Bob选择计算机,并应该选择当前计算机,我需要id来完成这个操作。我需要自己解析URL来去掉id吗?
有没有不这样做的原因:
GET /users/1
{
id: 1,
name: "Bob",
computerId: 5
}
PUT /users/1
{
name: "Bob",
computerId: 4
}