簡體   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