我正在构建具有以下端点的REST API:
GET /api/v1/categories - Get all categories
DELETE /api/v1/categories/$id - Delete a specific category
当客户端请求所有类别时,服务器必须返回带有HTTP标头 Last-Modified 的所有类别。
一旦删除了一个类别,并且客户端请求的HTTP标头 If-Modified-Since 早于删除时间,则服务器将返回所有类别,但不删除已删除的类别,但是HTTP标头显示了上次修改时间,即使该时间是删除时间。
我正在考虑两种方法来实现此目的:
在第一种方法中,我将在类别表中添加一列,以指示记录是否已删除。这样,通过此列和存储最后修改时间戳记的列,我可以检查在给定时间戳记之后是否发生了任何修改。
在第二种方法中,我将添加一个表,该表记录任何表中的最后修改。该表的每一行是系统其他任何表中发生的最后修改。以此方式,当删除类别时,保存有关类别表信息的日志表中的记录将更新,指示最后一个操作是带有操作时间戳的删除。这样,当我必须检查特定时间戳后类别表中是否发生任何更改时,首先我要检查日志表并决定是否要查询类别表。
即使以类别为例,此问题也发生在我的API的其他资源上,解决方案也应以相同的方式使用它们。
你们对提出的解决此问题的方法有何看法?