如何将帐户 ID 传递给 REST API

How to pass Account ID to a REST API

我的 HTTP API 要求前端在 API 调用上传递 accountId,因为我们支持 admin 未绑定到单个帐户的用户并且可以查询任何帐户。

最初我将其实现为 header 这里的问题是缓存不起作用。

当前的实现看起来像 api.com/endpoint?accountId=123,但效果很好 - 我想了解在实现 RESTful HTTP API.[=16= 时这是否是正确的方法]

更新: 根据评论 - 这是 GET

IMO,您通过将此信息放在 HTTP header 中来“以正确的方式”(TM) 做事——这似乎是它存在的正确位置。然而,您的缓存系统目前并不关心 HTTP headers,因此这给您留下了一个实际问题(它并不真正关心“正确的方式”)。所以...

基于此,听起来您有两个选择:

  1. 修复您的缓存以将特定的 header 作为缓存键的一部分,或者
  2. 将相关信息添加到 URL 用于缓存目的

我建议 (1) 将缓存键更新为 URL 的散列 + 其他会导致不同结果的相关信息(在本例中,HTTP header 包括帐户 ID 或 session 信息)。这使您可以将信息放在正确的位置,同时也不会导致缓存页面出现问题。

当然这可能是不可能的,所以我能为您提供的唯一实用解决方案是 (2) 将内容拉入 URL 以支持缓存。我认为这是一个 anti-pattern,但它会完成工作。