Proxy

应用 代理 策略以调用组合件中的另一个 API ,尤其是在单独的 API 包含大型有效内容时。 来自后端的响应存储在 message.body 和响应对象变量(如果定义)中。 每个唯一组合件流只允许运行一个策略。

网关支持

表 1. 该表显示了支持此策略的网关以及对应的策略版本
网关 策略版本
DataPower® Gateway (v5 compatible) 1.0.0
DataPower API Gateway调用 提供的功能  

本主题描述如何在组合件用户界面中配置策略; 有关如何在 OpenAPI 源中配置策略的详细信息,请参阅 proxy

关于

对于每个唯一的组合件流,只允许运行一个 代理 策略。 如果多个 代理 策略包含在组合件的互斥分支中,那么可以应用这些策略。

您可以使用 代理 策略来返回多部分表单数据,即,当响应设置为Content-Type: multipart/related. 但是, 代理 必须是组合件中的最后一个策略,否则在后续步骤期间可能会处理接收到的响应,从而导致多部分表单数据丢失。

proxy 策略 (如果在条件策略中) 必须是要在 API 中执行的 最终 策略。 如果之后需要进一步处理,请使用 invoke 策略而不是 proxy 策略。

属性

下表列示了策略属性,指示属性是否为必需属性,指定输入的有效值和缺省值并指定值的数据类型。

表 2. 代理 策略属性
属性标签 必需 描述 数据类型
职务 策略的标题。

缺省值为 proxy

字符串
描述 False 对策略的描述。 字符串
调用 URL 指定目标服务的 URL。

对于 SOAP API,缺省情况下已添加了 URL。 如果可能,会使用导入的 WSDL 中定义的信息来预先提供代理 URL 值。

字符串
TLS 概要文件 False 指定用于数据的安全传输的 TLS 概要文件。 字符串
TIMEOUT 在端点回复前的等待时间(秒)。

缺省值为 60

整数
用户名 False 用于 HTTP 基本认证的用户名。 字符串
密码 False 用于 HTTP 基本认证的密码。 字符串
HTTP 方法 要用于代理的 HTTP 方法。 有效值为:
  • 保留
  • GET
  • POST
  • 放置
  • 删除
  • PATCH
  • HEAD
  • 选项
缺省值为 Keep。 如果使用 Keep 或从源中移除该属性,将使用来自入局请求的 HTTP 方法。
字符串
压缩 False 选中此复选框以在上载时启用内容编码压缩。

缺省情况下未选中此复选框。

布尔型

高速缓存类型

False 高速缓存类型确定是否对文档进行高速缓存,从而采用或覆盖来自目标 URL 的响应中接收到的 HTTP 高速缓存控制指令。 仅当接收到响应时,此属性才会生效,否则策略始终返回先前保存在高速缓存中的未到期响应。
有效值为:
协议
根据 RFC 7234,高速缓存行为由响应上的 Cache-Control 头确定。

为优化性能,如果网关针对不在高速缓存中但在接收到来自目标 URL 的响应时可以进行高速缓存的资源接收到多个请求,那么网关仅向目标 URL 发送一个请求;在接收到来自第一个请求的响应并且根据此响应确定高速缓存行为之前,不会处理其余请求。 如果响应指示可以进行高速缓存,那么网关将使用已高速缓存的资源对所有等待请求作出响应。 如果响应指示无法进行高速缓存,那么网关会将所有等待请求发送到目标 URL。

仅当您预期来自目标 URL 的响应可以进行高速缓存时,才使用此选项,在此情况下它应会提高性能并限制对目标 URL 的需求。 但是,如果目标 URL 从未指示网关应当对其响应进行高速缓存,那么在与无高速缓存选项进行比较时,性能可能受到损害。

无高速缓存
无论返回任何高速缓存头,网关都不会对来自目标 URL 的响应进行高速缓存。 在此情况下,会将来自客户机的每个请求发送到目标 URL。

如果您不希望网关对任何后端响应进行高速缓存,或者如果来自目标 URL 的响应将不可能通过 Cache-Control 头设置来允许高速缓存,请使用此选项。

生存时间
此选项与协议选项类似,不同在于它允许指定您希望来自调用或代理的成功响应在高速缓存中保留的时间量。 仅当您预期来自目标 URL 的响应可以进行高速缓存时,才使用此选项。

缺省值为 Protocol

字符串

生存时间

False 指定响应保留在高速缓存中的时间量(秒)。 仅在属性高速缓存类型设置为 Time to Live 时才适用。 请输入 5 - 31708800 范围内的值。

缺省值为 900

整数

高速缓存键

False 指定文档高速缓存条目的唯一标识。 如果省略了此选项,那么整个 URL 字符串将用作键。 字符串
出错时停止 False 选择会导致组合件流停止的错误(如果在策略执行期间抛出)。 如果为错误配置了 catch 流,那么将触发该流以处理抛出的错误。 如果抛出错误并且未针对出错时停止设置选择任何错误,或者,如果抛出的错误不是选中的错误之一,那么将允许策略执行完成,并且组合件流也会继续执行。 字符串

响应对象变量

False 要用于存储请求的响应数据的变量的名称。 然后,可在其他操作(例如,“Map”)中引用此变量。 字符串
X-Forwarded False
此头的提供者
  1. If
    X-Forwarded-Host
    ,那么处理将继续。 如果在调用代理策略之前此项不存在,那么会使用 Host 头的值对其进行设置。
  2. X-Forwarded-For
    头。 此头通过任何先前代理从客户机维护面包屑,同时显示 IP 的逗号分隔列表。
  3. 如果调用代理策略时缺少全部三个
    X-Forwarded-Host
    ,
    X-Forwarded-Port
    X-Forwarded-Proto
    头,那么会自动对其进行设置。 要阻止此情况,请在调用代理策略之前,将
    X-Forwarded-Host
    头设置为某个值。
字符串