我有三种不同的型号,分别为User
,PermissionSet
和Permission
。这些模型分别代表它们的SQL表。更新与REST的多对多关联
User
具有多对一关联PermissionSet
,用户可能有一个PermissionSet
或没有。 PermissionSet
s将归无或多个User
s所有。
PermissionSet
与Permission
s有多对多关联。 A Permission
可能拥有多个PermissionSet
或没有,其中PermissionSet
可能拥有多个Permission
或根本没有。
所以我创建了四个表格:users
,permission_sets
,permissions
和联结表,permission_sets_permissions
。
我需要坚持在User
的PermissionSet
中所做的更改。这是由一个名为PermissionSetGrant
的模型处理的,该模型具有自己的表格permission_set_grants
。
根据HTTP和JSON,使用RESTful API更改PermissionSet
的Permission
的最佳方法是什么?
例如,它是一个很好的方式来修改PermissionSet
有这样的要求:
PUT /api/v1/permission_sets/7
// Payload
{
"permission_set": {
// Assume these properties of the entity aren't changed
"name": "default",
"description": "Default permission set.",
// Here we're changing the permissions
"permission_ids": [
24,
27,
35
]
}
}
-> 200 OK
或有额外的休息路径,而不是添加权限?
POST /api/v1/permission_sets/7/permissions
// Payload
{
"permission": 24
}
-> 201 CREATED
,当我们需要删除权限
DELETE /api/v1/permission_sets/7/permissions/24
-> 203 ACCEPTED
我还想补充一点,请求来自客户端的方面幂和确定性。至少,权限数量为100。因此,批处理操作将以第二种方式执行。