2017-07-15 60 views
0

我正在使用application/merge-patch+json作为我的内容类型来通过HTTP PATCH方法编辑资源。我将数据存储在RDBMS中。处理JSON合并补丁中的空值

merge patch spec明确指出,当一个密钥设置为null值时,应该从资源中删除。

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

我想到了两个选项:

  1. 违背规范,只需将列null,让他们在资源
  2. 使用JSON贴片代替,这是相当相比,合并补丁的开销

有没有其他方法?

回答

1

关于API资源的A DELETE并不一定是实际删除数据库中的资源 - 它可能是软件删除(事实上,这就是您正在做的)。

只要API正确表示为被删除(例如,您可以省略显示空值 - 我认为JSON默认为您执行此操作),可以认为您遵守规范。