允许 RESTful API 接受带有指向另一个资源的隐式链接的表示是否有缺点?
为了说明这一点,假设我有两个资源:
GET /people/:id
GET /houses/:id
一个人除了 之外还有一个唯一标识符id
,即他们的email
。
允许以下交互是否有缺点?
POST /houses
{
"_links": {
"owner": {
"email": "example@example.com"
}
},
"street_number": 20
}
服务器知道电子邮件字段是唯一的,因此可用于标识people
资源。它将创建与该人的关联。
允许这样做的原因是为了让 API 客户端更容易,他们不必先查找资源的 URI。
相反,我当然会允许这种类型的调用:
POST /houses
{
"_links": {
"owner": {
"href": "/people/3"
}
},
"street_number": 20
}