获取目标端点列表
Getting a list of target endpoints
我可以在 javascript 策略中获取目标端点列表吗?
假设我有一个连接到多个目标端点的代理端点。我能否编写一个 javascript 策略,以便在向该代理上的特定 url 发出请求时,它会调用所有目标端点并汇总结果?
无法从 JavaScript 调用目标端点。事实上,对于代理的单个调用,您只能调用 0 个或 1 个目标端点,而不是多个目标端点。
您可以使用 httpClient, and aggregate the results, but not target endpoints. An example of this is found here 从 JavaScript 中发出多个 HTTP 请求。
是的,这是可能的。 api代理定义本身包含为其定义的所有目标端点。
例如:
curl -v https://api.enterprise.apigee.com/v1/o/{org}/apis/{api}/revisions/{rev}/targets
将为您提供所有目标的列表。
然后你可以通过调用从列表中获取每个目标 URL:
curl -v https://api.enterprise.apigee.com/v1/o/{org}/apis/{api}/revisions/{rev}/targets/{target}
您可以在 for 循环中解析出每个 URL,然后向每个 URL 发出请求。如果您请求一个简单的 GET 调用而请求 object 没有任何变化,例如 headers、body 等,那么一个简单的 for 循环就足够了。
例如:
var geocoding = httpClient.get(URL);
context.session["geocoding"] = 地理编码;
这段代码可以在您可能拥有的所有目标端点的循环中调用。
这里唯一的问题是,要获取目标端点,您要从运行时层进行管理 api 调用。这意味着,如果在任何时候 Apigee 管理层因维护而停机或由于计划维护而导致服务降级,您的运行时调用往往会失败。另一种解决方案可能是隔离这两个脚本:
在一个 javascript 中获取端点列表,并可能将 URL 存储在缓存(populateCache 策略)或键值映射中(假定代理端点 URL s 不会经常改变)
从缓存或 kvm 中读取端点列表,然后触发另一个 javascript 可以调用这些端点,然后聚合响应。
我可以在 javascript 策略中获取目标端点列表吗?
假设我有一个连接到多个目标端点的代理端点。我能否编写一个 javascript 策略,以便在向该代理上的特定 url 发出请求时,它会调用所有目标端点并汇总结果?
无法从 JavaScript 调用目标端点。事实上,对于代理的单个调用,您只能调用 0 个或 1 个目标端点,而不是多个目标端点。
您可以使用 httpClient, and aggregate the results, but not target endpoints. An example of this is found here 从 JavaScript 中发出多个 HTTP 请求。
是的,这是可能的。 api代理定义本身包含为其定义的所有目标端点。
例如: curl -v https://api.enterprise.apigee.com/v1/o/{org}/apis/{api}/revisions/{rev}/targets
将为您提供所有目标的列表。 然后你可以通过调用从列表中获取每个目标 URL:
curl -v https://api.enterprise.apigee.com/v1/o/{org}/apis/{api}/revisions/{rev}/targets/{target}
您可以在 for 循环中解析出每个 URL,然后向每个 URL 发出请求。如果您请求一个简单的 GET 调用而请求 object 没有任何变化,例如 headers、body 等,那么一个简单的 for 循环就足够了。
例如: var geocoding = httpClient.get(URL); context.session["geocoding"] = 地理编码;
这段代码可以在您可能拥有的所有目标端点的循环中调用。
这里唯一的问题是,要获取目标端点,您要从运行时层进行管理 api 调用。这意味着,如果在任何时候 Apigee 管理层因维护而停机或由于计划维护而导致服务降级,您的运行时调用往往会失败。另一种解决方案可能是隔离这两个脚本:
在一个 javascript 中获取端点列表,并可能将 URL 存储在缓存(populateCache 策略)或键值映射中(假定代理端点 URL s 不会经常改变)
从缓存或 kvm 中读取端点列表,然后触发另一个 javascript 可以调用这些端点,然后聚合响应。