【发布时间】:2019-07-05 10:17:38
【问题描述】:
前端/客户端显示项目列表。向后端/ API 发出请求以更改某些项目。例如,添加一项或删除一项。后端成功处理完这个请求后,如何在客户端反映这些变化?
例子:
向后端添加新项目的 POST 请求。响应正文包含添加的项目。 Http状态码201已创建
向从列表中删除项目的后端发出 DELETE 请求。响应正文不包含任何内容。 Http 状态码 204 无内容
解决方案?
成功处理请求后(客户端收到 2xx 状态码),将从后端再次获取完整列表。缺点:这意味着我们有两个请求。首先是 POST,然后是 GET。
在 POST 请求的响应正文中返回完整列表。这看起来很奇怪,因为客户端使用 API 的方式会影响 API 的行为。
客户端在收到来自后端的 2xx 后会自行处理项目的添加或删除。优点:只有一个请求。缺点:如果多个用户对数据进行操作,则会出现问题。如何保持一切同步?
在干净的 API 设计方面,是否有一个共同的模式来处理这个问题?我注意到,如果您更改数据,许多工具只会发出一个请求。想想 Trello 或类似的东西。
【问题讨论】:
-
我只需要一个用户操作就可以从前端发出 2 个请求。您 POST 值,然后一旦收到响应,前端将发出更新列表的 GET 请求。