0

我有休息端点 /admn_resource_manager。我创建了一个 apigee 代理来公开它。我不想像这样向其他人公开它,因为我想要 /adminmanager 之类的东西。有没有办法使用 Apigee 将 /adminmanager 映射到 /admn_resource_manager。

最终用户将使用http://someurl.apigee/adminmanager而不是http://someurl.apigee/admn_resource_manager

我在 Apigee 中探索了 KeyValueMapoperation 和 AssignMessage。我不确定这些是否是实现地图路径的正确选择。我也没有得到任何示例。

4

2 回答 2

0

您认为执行此操作的方式是使用分配消息策略并使用 Set -> Path 元素。但此策略目前无法按设计用于重写代理的目标 URL。有关详细信息,请参阅分配消息指南

要将传入 URL 重写为不同的目标 URL,您可以使用分配消息策略在目标端点流中设置整个 URL (target.url),或者您可以使用 JavaScript 标注来设置它。我选择使用 JavaScript 标注,因为它在重写 URL 时提供了更多控制。

这是我在 Github 上整理的一个示例项目,您可以使用它来了解我是如何做到的。它使用 swapi.co api 作为目标端点。此代理使用分配消息和 JavaScript 标注策略来重写 URL。这里有一些关于它的细节......

代理端点

  • 为要重命名的每个资源创建一个代理端点。
  • 这是您设置分配消息策略以设置新路径后缀的变量的地方。

分配消息策略

  • 在每个代理端点的 PreFlow 上设置 targetPathSuffix 和 appendResourceIdToUrl(如果需要)变量。

JavaScript 政策

  • 调用 URLRewrite.js 文件以执行 js 代码。
  • 在 TargetEndpoints PreFlow 上设置并在每个请求上执行
  • 使用分配消息策略中设置的变量来更改 target.url 变量。
于 2019-08-22T14:01:51.813 回答
0

我认为 Apigee 可以做到。

当我开始使用 Apigee 时,我已经从下图中学习并尝试理解。(我认为这是描述这个平台的主要概念)

在此处输入图像描述

从你的情况来看,

  • 您可以指定您希望客户端调用的 URL,可能是 someurl.apigee/adminmanager 或其他
  • Apigee 是一个中间层,也称为网关。当您收到客户的请求时,您可以管理您想要的任何内容。当然,包括将您的客户端传递给其他 URL,例如someurl.apigee/admn_resource_manager。(您刚刚为该请求分配了新的 url)

因为我也不是专家,所以下面的这个链接可以为您解释更多信息。

链接:使用流变量

于 2019-08-19T04:46:57.720 回答