处理 JSON 合并修补程序中的空值



我正在使用application/merge-patch+json作为我的内容类型,通过HTTP PATCH方法编辑资源。我把我的数据存储在RDBMS中。

合并修补程序规范明确指出,当键设置为null值时,应从资源中删除该键。

但是,这对我来说是不可能的,因为我不能简单地删除数据库中某些行的列 - 我"删除"的值只是设置为null,这违反了规范。

我想到了两个选择:

  1. 违背规范,只需将列设置为null,将它们保留在资源中
  2. 改用JSON补丁,与合并补丁相比,这是一个相当大的开销

还有其他方法吗?

API 资源上的DELETE不必实际删除数据库中的资源 - 它可能是软删除(事实上,这就是您正在做的事情)。

只要它被 API 正确表示为已删除(例如,您可以省略显示空值 - 我认为 JSON 默认情况下会为您执行此操作),就可以说您尊重规范。

RFC 没有定义你如何存储数据,它只与 JSON 有关。 API/域模型应与实体层/数据库分离。 如何在这两者之间映射,取决于你。

相关内容

最新更新