RestLookupService

文档中心 › 组件索引 › RestLookupService

RestLookupService Controller Service

类型全限定名:cn.org.acal.lynxus.lookup.RestLookupService

所属 Bundle:cn.org.acal.lynxus:lynxus-lookup-services-nar:2.11.8

描述

使用 REST 服务查找值。

标签

restlookupjsonxmlhttp

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
URLREST 端点的 URL。表达式语言针对查找键/值对进行求值,而不是 FlowFile 属性。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Record Reader控制器服务 API:
RecordReaderFactory
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
用于加载有效负载并将其作为记录集处理的Record Reader。
Record Path可用于定义从记录中何处获取要合并到要丰富的记录集中的实际数据的可选记录路径。有关何时可能有用的示例,请参阅文档。
支持表达式语言:是(仅使用环境/系统变量求值)
Response Handling StrategyRETURNED
  • Returned — 返回成功和不成功的 HTTP 响应。
  • Evaluated — 返回成功的 HTTP 响应,不成功的 HTTP 响应生成异常。
是否返回所有响应或针对不成功的 HTTP 状态代码抛出错误。
SSL Context Service控制器服务 API:
SSLContextProvider
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
用于提供客户端证书信息以进行 TLS/SSL 连接的 SSL 上下文服务。
Authentication StrategyNONE
  • None — 无身份验证
  • Basic — 基本(Basic)身份验证
  • OAuth2 — OAuth2 身份验证
与 REST 服务一起使用的身份验证策略。
OAuth2 Access Token Provider控制器服务 API:
OAuth2AccessTokenProvider
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
使用授权标头启用应用于 HTTP 请求的 OAuth2 承载令牌的托管检索。
Proxy Configuration Service控制器服务 API:
ProxyConfigurationService
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
指定代理配置 Controller Service 来代理网络请求。 对于 SOCKS,不保证处理器一定会使用所选的 SOCKS 版本。
Basic Authentication Username客户端用于对远程 URL 进行身份验证的用户名。不能包含控制字符 (0-31)、':' 或 DEL (127)。
支持表达式语言:是(仅使用环境/系统变量求值)
Basic Authentication Password客户端用于根据远程 URL 进行身份验证的密码。
敏感属性:是
支持表达式语言:是(仅使用环境/系统变量求值)
Use Digest Authenticationfalse
  • true
  • false
是否使用摘要认证与网站通信。'基本认证用户名'和'基本认证密码'用于身份验证。
Connection Timeout5 secs连接到远程服务的最大等待时间。
Read Timeout15 secs远程服务响应的最长等待时间。

动态属性

动态属性允许用户自定义属性的名称与值。

名称值描述
**所有动态属性都作为 HTTP 头添加,名称作为头名称,值作为头值。

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

提供的 Service API

  • LookupService (cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8)
  • RecordLookupService (cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8)

详细说明

RestLookupService

概述

该 Lookup Service 支持以下可选的查询坐标键:

  • request.method;默认为 'get',有效值:
    • delete
    • get
    • post
    • put
  • request.body;包含一个表示 JSON、XML 等的字符串,会随除 "get" 之外的方法一起发送。
  • mime.type;指定请求体的媒体类型,传递 'body' 时必需。
  • *;可以配置任何其他键,用于传递解析目标 URL 所需的变量。参见下文"动态 URL"一节。

Record Reader 用于消费 REST 服务调用的响应,并将其转换为一条或多条记录。 Record Path 属性用于指定查询路径,可以指向嵌套记录,也可以指向 REST 响应深处的 单个位置。注意:必须构建一个能准确封装 REST 响应的合法 schema,该服务才能正常工作。

请求头(Headers)

通过动态属性支持请求头。只需添加一个动态属性,其名称即为请求头名,值即为该请求头的值。 支持由变量注册表(variable registry)输入驱动的表达式语言。

动态 URL

URL 属性支持表达式语言,其变量来自使用本 Lookup Service 的组件(例如 LookupRecord Processor)上配置的查询键/值对。用户指定的配置会传递给表达式语言 引擎求值。注意:对于该属性,FlowFile 的 Attribute 会被忽略。

示例:URL 为 http://example.com/service/${user.name}/friend/${friend.id}, 结合 LookupRecord Processor 上的示例 record path:

  • user.name => "/example/username"
  • friend.id => "/example/first_friend"

会动态生成端点 http://example.com/service/john.smith/friend/12345

在 URL 中使用环境属性

除了查询键/值对之外,还可以在 URL 属性配置的表达式语言中引用环境属性/系统变量。

示例:URL 为 http://${apiServerHostname}:${apiServerPort}/service/${user.name}/friend/${friend.id}, 结合前面的示例 record path,以及环境属性:

  • apiServerHostname => "test.example.com"
  • apiServerPort => "8080"

会动态生成端点 http://test.example.com:8080/service/john.smith/friend/12345