借助 ArcGIS Velocity 中的 HTTP 输出,可以通过 POST、PUT 或 DELETE 请求将要素和其他文本发送到 HTTP 端点。 对于发送到输出的每个输出要素,系统将发送一个请求。
示例
分析人员将 HTTP 输出配置为将要素以自定义 JSON 格式发送到指定的 Webhook。
用法说明
使用输出时,请谨记以下信息:
- 在请求正文中发送 JSON 时,请使用 Text() Arcade 表达式将 JSON 括起来,以正确地格式化 JSON。
- 使用 HTTP 输出时,了解数据的速度至关重要。 发送到输出的每个记录都将生成单独的请求。 由此可能会快速使 web 服务器的容量或速率限制设置过载。 将 HTTP 输出用于不经常发生的事件。
- 使用 Open Authorization (OAuth) 身份验证时,以下内容适用:
- HTTP 输出类型支持使用 OAuth 2.0 进行遵循客户端凭据或密码授予类型的 HTTP 端点的身份验证。 这些 OAuth 授权类型遵循的方案包括配置 HTTP 请求以获取访问令牌,以及可选地配置请求以使用刷新令牌来检索新的访问令牌。 在配置访问令牌请求期间,系统将提示您从 OAuth 授权服务器的响应中识别访问令牌和可选的刷新令牌以及有效期 JSON 密钥字段。 如果选择了有效期,则必须定义有效期类型(持续时间或时间戳)和单位。 要配置表示为字符串的有效期时间戳,请将有效期单位设置为其他,并通过添加有效期日期格式化字符串来指定日期格式。 如果指定的刷新令牌没有有效期,则如果主数据请求连续两次失败,源将尝试刷新令牌请求。
- 如果识别了访问令牌请求中的刷新令牌,则必须使用 $refreshToken 全局变量来定义在刷新令牌请求的配置中将使用刷新令牌的位置。 可以选择在刷新令牌请求中使用 $accessToken 全局变量。 $refreshToken 和 $accessToken 全局变量都可用于在 POST 正文、URL 参数和自定义标题参数中引用。
- 当返回数据请求的配置时,必须使用 $accessToken 全局变量来定义将使用访问令牌的位置。 这通常是在带有值 Bearer $accessToken 的 Authorization 自定义标题中。
- 访问令牌可以存储为 JSON Web 令牌 (JWT)。 如果您使用 JWT 作为访问令牌,请打开使用 JWT 格式的选项。 Velocity 对令牌进行解码,如果负载包含 exp 声明,则此值将自动用作有效期。 exp 是访问令牌的有效期时间戳,表示方式为新纪元秒。
通过 HTTP 输出,用户可以根据字段值动态填充 URL 或自定义标题值。 这允许用户构造特定于正在处理的每个记录的端点 URL、自定义标题和 URL 参数。
用户可以使用以下格式之一在 URL、自定义标题和 URL 参数中引用字段值:
- $feature.fieldName 用于标准字段名称。
- $feature['field name'] 用于字段名称包含空格的情况。
要支持连接测试和验证,必须为 URL、自定义标题或 URL 参数中使用的每个引用字段提供示例值。 在分析验证期间以及测试与目标系统的连接时,将使用这些值。 在运行时,Velocity 将每个占位符替换为当前记录中的相应属性值。
假设您的分析包含名为 sensor_id 的字段。 您可以将输出 URL 定义为 https://yourAPIURL.com/$feature.sensor_id。 对于 sensor_id = 1234 的记录,输出解析为 https://yourAPIURL.com/1234。 相同的模式可用于自定义标题和 URL 参数。
- 发送请求正文中包含属性字段的 Arcade 表达式时,需要使用示例值来计算表达式。 使用示例值下拉菜单为 Arcade 表达式中引用的任何属性字段提供代表值。
参数
以下是输出的参数:
参数 | 描述 | 数据类型 |
---|---|---|
URL | 用于发送输出请求的 URL。 | 字符串 |
HTTP 方法 | 请求的 HTTP 方法。 选项包括 POST、PUT 和 DELETE。 | 字符串 |
POST 正文 | JSON Arcade 表达式。 | Arcade 表达式 |
内容类型 | 发出请求的内容类型标题。 选项包括以下内容:
| 字符串 |
身份验证类型 | 在无(无身份验证)、基本身份验证或 OAuth 身份验证选项之间选择。 如果配置了基本身份验证选项,则会显示其他字段,提示您输入用户名和密码。 如果配置了 OAuth 身份验证选项,则会显示一个弹出窗口,允许您配置以下内容:
指定上述内容后,会测试连接。 您必须单击以识别 JSON 响应中的访问令牌(可能还包含刷新令牌和有效期值)。 如果指定了刷新令牌值,则会显示一个附加的弹出窗口,允许您配置以下内容:
指定上述内容后,会测试连接。 您必须单击以识别 JSON 响应中的访问令牌和刷新令牌。 | 各种参数 |
URL 参数 | 要包含在发送到指定网站的 HTTP 请求 URL 中的可选 URL 参数。 虽然也可以在以上 URL 参数中设置参数,但是在此处作为单独参数输入的 URL 参数将覆盖 URL 参数中指定的任何匹配参数。 此参数中定义的 URL 参数始终采用 URL 编码。 | 键值对 |
自定义标题 | 发送到指定网站的 HTTP 请求中将包含可选的自定义标题。 例如,自定义标题可用于指定第三方 API 密钥或身份验证标题。 | 键值对 |
其他日志记录 | 可以选择对原始 HTTP 请求和 Velocity 发出的请求打开日志记录。 注:此参数应仅在进行故障排除时打开,并在故障排除完成后关闭。 如果在打开参数后启动分析,调试级别日志即会出现在分析日志页面上。 如有必要,请联系 Esri 技术 支持 以获得故障排除方面的帮助。 | 布尔 |
示例值 | 允许用户为 $feature.fieldName 或 $feature['fieldName'] 引用的每个字段定义示例数据。 连接测试和验证需要这些值。 | 键值对 |
注意事项和限制
使用输出时应考虑以下问题:
- 使用 OAuth 身份验证选项时,请记住以下几点:
- 在创建输出时,系统会向授权服务器和相关数据端点发送多次请求。 一些 API 对某些请求实施限速,这可能会影响输出创建。
- 出于安全原因,在编辑身份验证参数时,必须重新配置访问令牌请求 POST 正文。
- 必须可以通过 Internet 从外部访问 web 服务器。