JSON补丁只适用于调整前端和资源后端的JSON数据吗?

vq8itlhq  于 2022-09-21  发布在  Node.js
关注(0)|答案(1)|浏览(237)

在资源API中,更新资源的部分属性的方法可以与方法补丁一起使用。与此同时,人们似乎选择的标准之一是JSON补丁。

据我所知,JSON补丁标准化了改变a json对象的层操作。许多JSON补丁程序库都是围绕这一点构建的。

然而,我不明白的是,如果我只是允许补丁端点接收对“面向客户端的资源”的某些属性的更改。这些提供对象突变的库实际上有什么帮助呢?我的数据库不像是JSON对象的一大块。除非可能是更具体的数据,比如我的SQL表上的数据,否则它的用法是专门更改类型为JSON的列数据。然后重新更新到SQL表中。在这种情况下,常规列类型是否仍然符合JSONPATCH,如何将其委托给数据库更改?

我觉得,除非它是实际的json类型,否则更新粗粒度的资源需要进行大量的修剪/验证。即

1.确保只有某些行是可编辑的
1.确保只允许某些操作
1.将更改Map到特定于SQL的表/列。因为任何面向客户端的资源属性都可以从JOIN表构造。

3bygqnnd

3bygqnnd1#

JSON补丁格式实际上是面向文档的,在处理像MongoDB这样的JSON文档时要比使用传统的SQL数据库容易得多,但是您仍然可以将JSON补丁与关系模型一起使用,对象变异库将在这方面提供帮助。

要使其正常工作,您的系统中至少需要有三个额外的组件-一个将一个或多个数据库表转换为JSON文档,一个可以验证给定格式的JSON文档,另一个可以将JSON对象“转换”为数据库表,也就是根据数据库中的现有数据和执行补丁后获得的JSON文档生成插入/更新/删除查询。这样一个端点的最小算法如下所示:

1.调用JSON补丁端点。
1.调用负责将数据库表转换为JSON文档的组件。
1.您的库将操作应用于该文档。
1.验证组件验证所得到的文档。
1.调用负责将JSON文档转换为数据库的组件并运行相应的查询

如果这听起来太麻烦了,那是因为它实际上是太麻烦了,在处理关系数据模型时,使用传统的REST方法比使用JSON补丁要简单和直接得多。

相关问题