一般来说,在REST API服务中,我们向主体提供了哪些信息以及我们将哪些信息添加到标题中?
例如,我有一个更新用户的现有端点。喜欢这个
^\r\n
在以下情况下可以调用此端点:
如果更新由管理员完成,我需要将管理员用户ID添加到跟踪中。为此,我看到两种方式。
我将管理员的ID添加到合同中,如果它不为空,则表示管理员进行了更改。
POST
{
"user": {
"id": 1,
"name": "some name"
}
}
正文保持不变,我将POST
{
"user": {
"id": 1,
"name": "some name"
},
"admin_id":""
}
添加到http标头。如果它不为空,则表示管理员进行了此更改。
X-admin-id
是否有最佳做法,或者我可以同时使用这两种方式?
答案 0 :(得分:2)
我知道这是一个老问题,用户可能不需要答案。这是我的想法。
我们不应该将admin_id放在请求的正文中。所以我更喜欢采用第二种方法。所以我们只需检查X-admin-id是否可用。如果它可用,则管理员用户代表用户进行操作,否则用户自己这样做。我还希望在Filter类而不是Resource Endpoint中执行此检查。