User
, PermissionSet
및 Permission
의 세 가지 모델이 있습니다. 이 모델은 각각 SQL 테이블을 나타냅니다.REST와 다 대 다 연관 업데이트
User
은 many-to-one 연관이 PermissionSet
이고, 사용자는 PermissionSet
또는 none을 가질 수 있습니다. PermissionSet
은 none 또는 many User
에 의해 소유됩니다.
PermissionSet
은 Permission
과 다 대다 연관이 있습니다. Permission
은 복수 PermissionSet
또는 없음으로 소유 할 수 있습니다. PermissionSet
은 복수 Permission
을 소유하거나 전혀 소유하지 않을 수 있습니다.
이렇게 4 개의 테이블을 만들었습니다 : users
, permission_sets
, permissions
및 접합 테이블 permission_sets_permissions
.
변경 사항을 User
의 PermissionSet
에서 유지해야합니다. 이 모델은 PermissionSetGrant
이라는 모델로 처리되며 자체 표가 permission_set_grants
입니다.
PermissionSet
의 Permission
을 HTTP 및 JSON을 기반으로 RESTful API로 변경하는 가장 좋은 방법은 무엇입니까?
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
또는 대신 별도의 REST 경로와 권한을 추가 :
예를 들어, 같은 요청으로 PermissionSet
을 수정할 수있는 좋은 방법입니다?
POST /api/v1/permission_sets/7/permissions
// Payload
{
"permission": 24
}
-> 201 CREATED
우리는 해당 권한
DELETE /api/v1/permission_sets/7/permissions/24
-> 203 ACCEPTED
나는 또한 요청이 클라이언트의 측면에서 나무 등 결정적이다 추가 할을 삭제해야 할 때. 사용 권한의 수는 최소한 100 개입니다. 따라서 배치 작업은 두 번째 방법으로 수행됩니다.