繁体   English   中英

REST-删除后使用HTTP缓存获取集合

[英]REST - Get collection with HTTP cache after delete

我正在构建具有以下端点的REST API:

GET /api/v1/categories - Get all categories
DELETE /api/v1/categories/$id - Delete a specific category

移动应用程序应首次获取所有类别,但之后应仅获取最后修改的类别(使用Last-Modified HTTP标头)。

当第二个应用程序删除类别时,服务器将从数据库中删除该类别。 删除后,如果其他应用请求了最后修改的类别,则服务器不会返回有关已删除类别的任何信息,并且这些应用不会将其从其本地数据库中删除。

解决此问题的最佳方法是什么?

我正在考虑使用软删除(指示已删除类别的标志),并且当应用程序获得上次修改的类别时,服务器将返回自HTTP标头传递的日期以来的所有修改的类别,包括已删除的类别。 但是,如果应用程序请求所有类别(没有Last-Modified标头),则服务器将返回除已删除(标有该标志)之外的所有类别。

提出的解决方案是解决此问题的最佳方法吗?

解决此问题的最佳方法是什么?

您可能会在网上寻找灵感。 参见RFC 7234

最高点是:Web是一个分布式系统,每个客户端都可以管理自己的资源表示形式的本地缓存。 资源通过描述其新鲜度的元数据交付给客户; 客户有权重用其本地状态副本,直到状态失效为止。 对资源的成功不安全操作会自动退出该资源的先前缓存的表示,并且存在一种机制( 304 ),以允许服务器廉价地向客户端传达先前缓存的表示仍是新鲜的。

但是服务器上的更改不会自动传播到所有客户端,也不会从一种资源级联到另一种资源。 相反,您需要考虑为每个资源单独选择正确的新鲜度策略。

这是重要的原因之一,认识到资源模型的设计需要满足与数据模型的设计不同的约束集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM