我们在前端的Web应用程序中有一个嵌套的JSON结构,如Rows>栏目>元素>行>栏目>元素......
我们还有一个API调用,它将整个数据作为JSON发送到后端。
在后端,我们有一组权限,如列大小更改,行背景更改,元素排序更改等,允许或拒绝各种类型的用户。
我们希望在后端识别是否允许更改嵌套结构。
示例1 [更新数据]:
用户已更改“列”的大小,其中大小在“列”对象中表示为属性。
或
示例2 [删除/添加数据]:
用户已从“列”中删除/添加了“元素”。
我们知道我们可以对整个树进行完全遍历,并了解是否允许更改,但我们正在为并发连接和许多用户/大树寻找更好,更快,节省资源的解决方案。 / p>
这个问题对于不同的技术似乎是一般的,但我想告诉你我们在后端使用Laravel / Lumen / Dingo& Ember.js在前端。
感谢阅读和帮助:)
答案 0 :(得分:4)
一种选择是不将整个JSON发送到服务器,而是发送json补丁(参见http://jsonpatch.com/)。然后在服务器上,有规则将补丁中的路径有效地散列为权限。换句话说,由于您只发送更改而不是整个JSON,因此需要解析entir
答案 1 :(得分:0)
您可以拥有用于返回权限的API(具有模型Permission
)。
然后使用ember-can检查前端所需操作的权限。
通过这种方式,您可以确保在从前到后发送数据以进行更新时,它确保遵守后端定义的权限,并且不需要许多后退
答案 2 :(得分:0)
我认为您可以为每次更改添加类型。例如,列更改是----> colChange(或simpleChange)。使用json发送更改类型。可以通过更改类型检查权限。此外,还可以有一组更改类型,并且可以访问组的权限。如果您不为每次更改发送数据,则必须有一堆用户更改(在每次用户更改时将更改类型推送到堆栈中)。使用json将该堆栈发送到后端。