基于条件的资源删除:Purge 方法详解
1. 动机
在资源操作中,我们常常需要同时对多个资源进行处理,特别是清除特定的一组资源。与其他批量操作相比,删除操作最为直接,只需给定资源 ID 即可移除资源。
例如,我们想要删除所有标记为已存档的 ChatRoom 资源,代码如下:
function deleteArchivedChatRooms(): void {
const archivedRooms = ListChatRooms({
filter: "archived: true"
});
return BatchDeleteChatRooms({
ids: archivedRooms.map( (room) => room.id )
});
}
然而,这种设计存在几个问题:
- 多次 API 调用 :至少需要两次独立的 API 调用,而且列出资源可能需要多次重复请求才能找到所有匹配的资源。
- 非原子性结果 :在收集已存档资源的 ID 时,部分资源可能已被取消存档,导致删除的资源并非都是已存档的。
因此,我们需要一种替代方法,能够基于一组条件删除资源,而不仅仅依赖于资源 ID 列表。
2. 概述
Purge 方法应运而生,它接受一个简单的过滤器,执行后匹配该过滤器条件的所有结果都会被删除。本质上,它是标准列表方法和批量删除方法的结合,但只需一次 API 调
超级会员免费看
订阅专栏 解锁全文
900

被折叠的 条评论
为什么被折叠?



