【发布时间】:2015-09-25 03:59:21
【问题描述】:
为具有复合 ID 的对象设计 RESTful 资源的最佳方法是什么?例如,假设我有一个GET /people 资源用于获取人员记录列表。一个人没有单一的身份;相反,它由名字、姓氏和出生日期标识。我应该如何设计资源以获得一个人?
【问题讨论】:
-
顺便说一句,虽然很少见,两个同名的人,可以过同一个生日。所以这对于PK来说是一个相当糟糕的选择。
-
这是一个假设的例子。请在 firstName、lastName 和birthdate 保证唯一性的假设下进行操作。
-
我同意@jwzirilli - 你应该使用一种(几乎)保证一个人的独特性的机制。社会安全号码 f.e.对人来说就是这样一个数字。如果在您的系统中,
firstName、lastName和birthday的组合保证创建一个唯一标识符,您也可以使用 matrix-parameter:GET /people;firstName=John;lastName=Smith;birthday=1973-12-01