我正在编写一个具有文件资源/files
的REST API,并授予其他用户访问文件/files/{id}/permissions
的权限。
API仅在内部使用,因此没有授权,但所有请求仍然需要userId
来代表应该执行请求的用户。
创建新文件的请求可能如下所示:
POST /files
{
"userId": 1,
"name": "Example",
"content": "Example content"
}
返回:
{
"id": 1,
"ownerUserId": 1,
"name": "Example",
"content": "Example content"
}
我的印象是,首先应检查用户是否被允许执行请求的操作,然后验证请求是否已经过了{我已经关注HTTP decision diagram; {{在is_forbidden
之前的1}},但这对于创建权限请求似乎有点反直觉:
is_request_block_ok
我希望这会因POST /files/1/permissions
{
"userId": -1, // Intentionally invalid value
"granteeId": 5,
"role": "READER"
}
而返回400 Bad Request
,但我得到userId = -1
,因为我检查了权限(尝试创建权限的用户应该是验证请求之前的文件。
检查许可和验证请求的顺序是否应该颠倒,还是我按照正确的顺序进行?
如果我的执行顺序正确,对上述无效请求的预期响应是(400或403)?