REST API最佳实践:我们将哪些信息放入标题中以及将哪些信息放入正文中

时间:2017-08-28 07:26:21

标签: rest restful-architecture

一般来说,在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

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

1 个答案:

答案 0 :(得分:2)

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

我们不应该将admin_id放在请求的正文中。所以我更喜欢采用第二种方法。所以我们只需检查X-admin-id是否可用。如果它可用,则管理员用户代表用户进行操作,否则用户自己这样做。我还希望在Filter类而不是Resource Endpoint中执行此检查。