Skip To Content

在 REST 端点接收 JSON

“在 REST 端点接收 JSON”输入连接器可用于在由 ArcGIS GeoEvent Server 托管的 REST 端点上接收和改编格式为通用 JSON 的事件数据。 给定一个标准 GeoEvent Server 配置时,数据提供商应期望通过 HTTP/POST 将数据发送到格式化为 https://<machine_name>.<domain>:6143/geoevent/rest/receiver/name 的端点,其中 name 是已配置的输入连接器的名称。

以数组形式包含三个事件记录的通用 JSON 块

用法说明

  • 使用此输入连接器接收使用 HTTP/POST 发送到 GeoEvent Server 托管的 REST 端点的格式为通用 JSON 的数据。
  • 此输入连接器将通用 JSON 入站适配器与 HTTP 入站传输进行配对。
  • 典型的通用 JSON 块如上图所示。 此示例以数组形式组织了三个事件记录。
  • 该适配器会将数组中的每个对象作为单独的事件记录进行处理。
  • GeoJSON 和要素 JSON 均为通用 JSON 的变体;不同 GeoEvent Server 适配器可用于处理这些特定格式。
  • 有关 JSON 结构的其他信息,请参阅 Esri Community 博客 JSON 数据结构 - 使用层次结构和多基数关系
  • 配置并保存一个新输入会创建一个 GeoEvent Server 托管的 REST 端点。
  • 通过在保存输入后对其进行编辑,可以在 GeoEvent Server 托管的 REST 端点中恢复完全限定的路径。
  • 可以将 GeoEvent Server 配置为对其 REST 接收器应用不同的基本 URL 和/或通过 6143 以外的端口进行连接。
  • 数据提供商必须在其 HTTP/POST 的标头中包含与正在发送的数据关联的 MIME 类型。
  • 您配置的输入应指定传输将接受的 MIME 类型。
  • 此输入连接器期望的 MIME 类型为 application/json,这是客户端和服务器之间 JSON 交换的默认 MIME 类型。
  • 适配器支持根据 X、Y 和 Z 属性值构造点几何的功能。
  • 传输将接受 HTTP/GET HTTP/POST 请求。 数据提供商通常应发出正文中含 JSON 且无查询参数的 HTTP/POST 请求以将事件数据发送到 GeoEvent Server。 但是,当数据作为一个或多个查询参数包含在 HTTP/GET 请求的 URL 中时,此输入连接器还可提取格式为通用 JSON 的事件数据。 使用获取请求中包含原始数据来利用此功能。 有关详细信息,请参阅 Esri Community 博客 GeoEvent Server HTTP 入站传输的增强功能
  • 此输入连接器包括学习模式,当您需要允许输入连接器修改其构造的 GeoEvent 定义时,该模式可能非常有用。 此属性的目的是暂时接受所接收的事件数据将具有变量方案或数据结构。 输入连接器将使用所接收数据记录的样本来了解有关变量数据结构的详细信息,并将先前未发现的新属性字段追加到现有 GeoEvent 定义中。

    允许动态更改 GeoEvent 定义会对 GeoEvent 服务中的实时分析设计产生负面影响。 作为最佳实践,建议您如果您的入站事件数据中存在方案差异,则尽可能缩短使用学习模式的时间段,以生成支持入站数据所有预期变体的 GeoEvent 定义。 然后,可以关闭学习模式并自动生成针对生产部署复制和定制的 GeoEvent 定义。

参数

参数描述

名称

用于在 GeoEvent Manager 中引用的输入连接器的描述性名称。

默认空间参考

当从坐标不是假定的 WGS84 地理坐标系的纬度和经度值的属性字段值构造几何时使用的空间参考的熟知 ID (WKID),或接收的不包含空间参考的几何字符串。 还可以指定熟知文本 (WKT) 值或包含 WKID 或 WKT 的属性字段的名称。

JSON 对象名称

JSON 元素的名称,可用作接收的 JSON 数据中子结构的根结点。 当 JSON 对象名称用于按名称指定 JSON 元素时,适配器将搜索对象名称与指定元素名称匹配的子结构。 仅考虑所识别的子结构内的数据。 如果保留为空(默认值),则最上面的 JSON 对象将用作整个 JSON 结构的根。

创建 GeoEvent 定义

指定是否应将新的或现有的 GeoEvent 定义用于入站事件数据。 GeoEvent Server 需要 GeoEvent 定义,以了解入站事件数据属性字段和数据类型。

  • - 将根据收到的第一个事件记录的模式创建新的 GeoEvent 定义。
  • - 不会创建新的 GeoEvent 定义。 选择与入站事件数据的方案匹配的现有 GeoEvent 定义。

GeoEvent 定义名称(新)

(条件分析)

分配给新 GeoEvent 定义的名称。 如果已存在具有指定名称的 GeoEvent 定义,则会使用现有的 GeoEvent 定义。 收到的第一个数据记录将用于确定后续数据记录的预期方案,将根据第一个数据记录的方案创建新的 GeoEvent 定义。

此参数在创建 GeoEvent 定义设置为时显示,设置为时隐藏。

GeoEvent 定义名称(现有)

(条件分析)

在调整接收数据以创建事件数据以供 GeoEvent 服务处理时使用的现有 GeoEvent 定义的名称。

此参数在创建 GeoEvent 定义设置为时显示,设置为时隐藏。

默认空间参考

当从坐标不是假定的 WGS84 地理坐标系的纬度和经度值的属性字段值构造几何时使用的空间参考的熟知 ID (WKID),或接收的不包含空间参考的几何字符串。 还可以指定熟知文本 (WKT) 值或包含 WKID 或 WKT 的属性字段的名称。

可接受的 MIME 类型(服务器模式)

指定输入连接器将接受的 MIME 类型。 使用逗号来分隔值,例如:text/plain,application/xml,text/xml。 MIME 类型通常由类型/子类型结构组成,并在服务器要指定它将从客户端接受的数据的 Internet 媒体类型时使用。 默认值是 application/json,这是在客户端和服务器之间交换 JSON 时的官方 MIME 类型。

有关官方 MIME 类型的详细信息,请参阅互联网地址编码分配机构 (IANA)。 有关 ArcGIS Server 未使用的 MIME 类型的详细信息,请参阅 ArcGIS Server 未使用的 MIME 类型

预期日期格式

该模式用于匹配日期/时间值的预期字符串表示形式,并将它们转换为 Java 日期值。 模式的格式遵循 Java SimpleDateFormat 类约定。 此参数没有默认值。

GeoEvent Server 更偏好以 ISO 8601 标准表示的日期/时间值,通常被识别为日期值的日期/时间值的多个字符串表示可以转换为 Java 日期值,且无需指定预期日期格式模式。 其中包括:

  • “2019-12-31T23:59:59”- ISO 8601 标准格式
  • 1577836799000 - Java 日期(时间长整型;UTC)
  • “Tue Dec 31 23:59:59 -0000 2019”- 常见的 web 服务字符串格式
  • “12/31/2019 11:59:59 PM”- 美国使用的通用格式(12 小时制)
  • “12/31/2019 23:59:59”- 美国使用的通用格式(24 小时制)

如果收到的日期/时间值使用上述五种之一以外的约定表示,则必须指定一个预期日期格式以便 GeoEvent Server 了解如何调整日期/时间值。

从字段构建几何

指定输入连接器是否应使用作为属性接收的坐标值构造点几何。 默认为

  • - 来自指定事件属性字段的值将用于构造点几何。
  • - 不会构造点几何。 假定属性字段包含可以解释为几何的值,或者事件记录为非空间(不具有几何)。

X 几何字段

(条件分析)

入站事件数据中的属性字段包含点位置的 X 坐标部分(例如水平或经度)。

此参数在从字段构建几何设置为时显示,设置为时隐藏。

Y 几何字段

(条件分析)

入站事件数据中的属性字段包含点位置的 Y 坐标部分(例如垂直或纬度)。

此参数在从字段构建几何设置为时显示,设置为时隐藏。

Z 几何字段

(条件分析)

入站事件数据中的属性字段包含点位置的 Z 坐标部分(例如深度或高度)。 如果留空,则将省略 Z 值,并将构建 2D 点几何。

此参数在从字段构建几何设置为时显示,设置为时隐藏。

学习模式

指定学习模式为活动还是禁用状态。 学习模式设置为时,入站适配器会将新字段追加到其已创建和正在维护的 GeoEvent 定义中。

  • - 将启用学习模式。 将使用共享不同方案的事件记录中的新字段更新 GeoEvent 定义。
  • - 不会启用学习模式。 不会修改 GeoEvent 定义。

当您需要允许输入连接器修改它构建的 GeoEvent 定义时,学习模式会很有用。 此参数的目的是暂时接受所接收的事件数据将具有变量方案或数据结构。 输入连接器将使用所接收数据记录的样本来了解有关变量数据结构的详细信息,并将先前未发现的新属性字段追加到现有 GeoEvent 定义中。

获取请求中包含原始数据

指定连接器应如何处理接收到的 HTTP 请求中包含的数据。 当原始数据参数名称指定查询参数的名称时,可以使用 HTTP/GET 请求将原始数据作为单个查询参数的值发送。 否则,HTTP/GET 请求必须包含多个查询参数,这些参数的名称对应于连接器已配置为使用的 GeoEvent 定义中指定的属性字段。

此连接器使用通用 JSON 入站适配器,因此在使用单个查询参数表单时,其值必须格式化为通用 JSON。 使用 HTTP/GET 请求发送数据时,请求的内容正文应为空。 通常使用 HTTP/POST 请求发送数据,而不使用任何查询参数。 请求的负载预期会格式化为通用 JSON,事件数据会包含在请求的内容正文中。 使用 HTTP/POST 发送事件数据到 GeoEvent Server 时,将忽略请求的查询参数中包含的任何数据。

  • - 假设将接收 HTTP/GET 请求并从指定的查询参数中提取事件数据。 只能将一个查询参数视为请求的原始数据的来源,并且请求的内容正文应为空。
  • - 收到 HTTP/POST 请求时,忽略任何查询参数并从请求的内容正文(应格式化为通用 JSON)中提取事件数据。 当收到 HTTP/GET 请求时,请求的内容正文应为空,并且应从几个查询参数中提取事件数据,这些参数的名称与正在使用的 GeoEvent 定义相对应。

原始数据的参数名称

(条件分析)

查询参数的名称,该参数的值为入站 HTTP GET 请求提供原始数据。 查询参数的值应该是格式化为通用 JSON 的单个字符串。

此参数在包含原始数据的 GET 请求设置为时显示,设置为时隐藏。


在本主题中
  1. 用法说明
  2. 参数