我使用application/merge-patch+json
作为我的内容类型来通过HTTP PATCH方法编辑资源。我将数据存储在RDBMS中。
merge patch spec明确指出当密钥设置为null
时,应从资源中删除。
但是我无法做到这一点,因为我不能简单地删除数据库中某些行的列 - 我删除的值'只是设置为null
,这违反了规范。
我想到了两个选择:
null
,并将其保留在资源还有其他方法吗?
答案 0 :(得分:1)
API资源上的DELETE
并不一定要实际删除数据库中的资源 - 它可能是一个软删除(这是你正在做的事情,在事实)。
只要它被API正确表示为已删除(例如,您可以省略显示空值 - 我认为JSON默认为您执行此操作),可以认为您尊重规格。
答案 1 :(得分:0)
RFC没有定义存储数据的方式,仅与JSON有关。 API /域模型应与实体层/数据库分开。 您如何在这两者之间进行映射取决于您。