假设您使用的是Apigee或Amazon API Gateway等API网关,并且您的API的公开地址为http://my.public.dns.com/path/v1/articles。这会通过您的网关路由到内部主机http://some.internal.host.com/v1/articles。现在,如果您的内部API返回相对于自身的链接,那么当它们被提供给客户端时,它们将是错误的,因为它们基于其路径而不是实际的公共路径。我知道我可以通过使用相应网关中提供的工具转换响应来解决这个问题。
我的问题是;网关是否有标准的方式将公共路径传递给下游组件?我在想可能有一个类似的HTTP标头X-Forwarded-For。
答案 0 :(得分:1)
没有标准的类似标题。
请注意,我认为您的意思是后端是否返回绝对链接。如果链接是 relative ,则它们已经是正确的。相对链接不使用前导/
因此与当前目录“相对” - 无论它是什么 - 因此浏览器保留任何外部前缀并且链接透明地保持有效。相对链接还可以使用每个级别的../
路径前缀回溯目录级别。
另请注意,如果您使用API的自定义域名,API网关不需要任何路径前缀。这必然会限制您部署单个“阶段”,但这对于更灵活的路径来说是一个合理的权衡。 ..所以最简单的解决方案可能是在API中使用与这些内部路径匹配的路径。