我正在为我的Web项目(PHP)设计一个API,但在建模资源与属性之间的关系时会遇到麻烦。我想得到一些关于如何继续的意见。
资源:
关系:
您希望如何更新关系的“私人”属性?
现在您必须向... / api / users / {userId}发送PUT请求,包括该用户的所有关系,包括更新后的属性:
(名称可以为NULL - >无更新)
我对这种方法感到不舒服,因为我认为只需要发送已更改的信息进行更新。因此,我现在的想法是添加支持,仅将更新的关系发送到... / api / users / {userId}:
在我开始工作之前,我非常感谢一些反馈。也许还有其他更好的方法来处理资源之间的关系?
答案 0 :(得分:1)
这样做会违反REST服务是幂等的原则。这意味着您应该能够在不使用第二个操作更改资源的情况下发送相同的操作两次。
我将关系视为一个单独的资源:
创建/更新将为PUT ../api/users/{userId}/dogs/{dogId}
私有:是/否。删除关系将由DELETE ../api/users/{userId}/dogs/{dogId}
处理。