我遇到一种情况,我需要根据请求命中的环境将请求路由到所需的端点。例如质量检查-质量检查,从生产到生产
我已经在初始配置期间配置了代理并定义了默认目标主机。
然后,我使用JavaScript根据请求进入的环境来确定目标主机。
var env = context.getVariable('environment.name');
if(env=="prod") {
var host = 'https://prod.com';
}
if(env=="test") {
var host = 'https://qa.com';
}
我已在目标端点(默认)预流程中使用此JS文件作为步骤。
我看到所有请求都发送到了我在初始过程中配置的默认主机。
我在这里缺少什么吗?
我还看到了有关使用目标服务器环境配置的信息。我已经配置了主机,但是如何在代理中引用/使用主机。
答案 0 :(得分:0)
我通常在Apigee的“ 环境配置”的键值映射中设置目标端点(与您的主机相同)。
然后在键值映射操作策略
中将其分配给变量(例如,将其分配给变量名endpointUrl
)。
最后,如下所示在目标请求消息中使用它。
<AssignVariable>
<Name>target.url</Name>
<Ref>endpointUrl</Ref>
</AssignVariable>
此方法的优势是,如果您的主机发生了更改,您只需在“键值映射”中编辑值,而无需在代码中进行编辑,并且不需要重新部署API。
但是,我仅根据我的工作经验来回答你。
也许您尝试过Apigee社区,您可能会找到适合您的解决方案。