假设我们有一个应用程序来处理用户'实体通过RESTful Web服务。用户实体具有主键和相关的主键读取'网络服务:
- 主键是' id',关联的读者是' 用户/ {id} '
现在假设该实体有几个自然键。相应的读者网络服务是什么?以下是我倾向于使用的内容:
- 自然键'社会安全号码',读者' 用户/ bySsn / {ssn} '
- 自然键'电子邮件',读者' 用户/ byEmail / {email} '
- 自然键'名字+姓氏'假设该对是唯一的,例如,读者' users / byFirstNameAndLastName / {firstName} / {lastName} '
我可以使用查找器,例如' 用户?firstName = John& lastName = Doe '但我选择不,因为这些查找器的行为与读者不同:
- 他们返回列表而不是单个值
- 他们返回一个空列表而不是404
- 它们与子资源(例如' users / bySsn / 123456 / address'
的效果不佳
我的问题是:通过自然键'读取的REST实践是什么?操作吗
感谢您的时间。