当您还需要后端对这些更改采取措施时,如何从客户端更新(RESTful)资源?
假设我有一个带有以下资源的 RESTful Web API:
- 工人 - id,first_name,last_name,...
- 项目 - id、title、due_date、...、worker [ref to Worker]。一个项目只有在它属于一个工人时才能存在。
在客户端(通常是一个移动应用程序)中,用户可以检索一些工作人员的项目列表。然后,他们可以修改该列表中的每个项目(更新)、删除或创建新项目。更改必须在客户端本地进行,直到发送“发送”命令,然后服务器才应该接收更新。有点像经典的表单用例。
棘手的部分: 我需要后端根据每个变化采取行动,无论是单独的还是整体的。例如:
- 用户检索了一些工人的项目列表,删除了一个项目,还更新了另一个项目的到期日期。
- 根据这一变化,后端既需要向该项目的所有成员发送推送通知,也需要根据项目的总变化重新计算相关工作人员的优先级(一个被删除,另一个被推迟......)。
我如何以最好的方式实现这一目标?
- 如果我自己更新/删除/创建每个项目(使用单独的 POST、PUT 和 DELETE),后端何时会完成整体重新计算任务?
- 如果我将它们全部更新为一个批量(使用 PUT),那么后端将需要了解究竟发生了什么变化(哪些被删除,哪些被修改......),这是一件苦差事。
- 我听到的另一个选择是创建第三个实用程序资源,类似于“WorkerProjectUpdater”,它保存需要进行的更改,如事务,然后让“守护程序”通过它并实际提交更改。这也很难实现,因为在真实故事中存在许多类型的修改,并且为每种类型的更改创建资源(带有模型和数据库记录)将非常复杂。
我将Django与Django Rest Framework一起用于该 Web 服务。
感谢你的帮助!