带有 API 网关的 public 地址的标准 header

Standard header for public address with an API Gateway

假设您正在使用 API 网关,例如 Apigee or Amazon API Gateway and your public address for your API is http://my.public.dns.com/path/v1/articles. This gets routed through your gateway to an internal host http://some.internal.host.com/v1/articles。现在,如果您的内部 API returns 相对链接到自身,那么当它们被提供给客户端时,它们将是不正确的,因为它们基于其路径而不是实际的 public 路径。我知道我可以通过使用相应网关中可用的工具转换响应来解决这个问题。

我的问题是;网关是否有标准方法将 public 路径传送到下游组件?我在想可能有一个类似的 HTTP header 到 X-Forwarded-For.

没有类似的标准header。

请注意,我认为您的意思是 back-end returns absolute 链接。如果链接是 相对的 ,它们就已经是正确的了。相对链接不使用前导 / 因此 "relative" 指向当前目录——不管它是什么——因此任何外部前缀都由浏览器保留并且链接透明地保持有效。相对链接还可以回溯目录级别,每个级别都有一个 ../ 路径前缀。

另请注意,如果您为 API 使用自定义域名,API 网关不需要任何路径前缀,这必然会限制您部署单个 "stage,"但这是更灵活路径的合理权衡...因此最简单的解决方案可能是在 API 中使用与这些内部路径匹配的路径。