REST API 最佳实践:我们在标头中放入哪些信息,将哪些信息放入正文中



一般来说,在 REST API 服务中,我们把哪些信息放到正文中,把什么放到标头上?

例如,我有更新用户的现有终结点。喜欢这个

POST 
{
"user": {
"id": 1,
"name": "some name"
}
}

在以下情况下可以调用此终结点:

  • 用户自己更新他的数据
  • 用户呼叫客户服务和管理员会更改用户的此信息。

如果更新是由管理员完成的,我需要添加管理员用户 ID 来跟踪。为此,我看到了两种方式。

  • 我将管理员的 ID 添加到合同中,如果它不为空,则表示是管理员进行更改。

    POST 
    {
    "user": {
    "id": 1,
    "name": "some name"
    },
    "admin_id":""
    }
    
  • 正文保持不变,我将X-admin-id添加到 http 标头中。如果它不为空,则表示管理员进行了此更改。

    POST 
    {
    "user": {
    "id": 1,
    "name": "some name"
    }
    }
    

是否有最佳实践,或者我可以同时使用这两种方式?

我知道这是一个老问题,用户可能不需要答案。这是我的想法。

我们不应该把admin_id放在请求的正文中。所以我更愿意遵循第二种方法。所以我们只需要检查X-admin-ID是否可用。如果可用,则管理员用户代表用户执行操作,否则用户自己执行此操作。我还希望在 Filter 类而不是资源终结点中执行此检查。

相关内容

最新更新