数据映射 REST Web 服务

MapForce 2016 第二版包含了增强的Web服务数据映射功能,为REST Web服务提供了强大的支持。MapForce 可以接受 XML 或 JSON 作为 Web 服务的响应,允许定义参数,并支持自定义 HTTP 头部。用户可以手动定义 Web 服务接口,也可以从 WADL 文件或 URL 导入设置。手动定义 REST Web 服务设置允许开发人员基于模板 URL 创建设置。当开发人员在 Web 浏览器窗口中测试和完善 REST 调用时,这非常方便,因为 URL 可以从浏览器复制并作为模板使用。

我们之前曾指出,GPS系统捕获的坐标非常精确,但海拔数据却以其不准确性而闻名 美国地质调查局(USGS)提供一个REST Web服务,该服务接受包含经度和纬度的查询,并提供准确的海拔数据,数据格式可以是XML或JSON。 我们可以利用这个Web服务,在MapForce的数据映射过程中,更新来自Garmin设备的GPS数据,并同时将数据格式从XML转换为JSON。

我们将首先在浏览器窗口中测试该Web服务。以下显示的URL会打开一个输入表单,用于生成一个示例查询:

当我们点击“获取海拔”按钮时,该表单会生成一个完整的 REST GET 请求,并将其提交,然后在下方显示结果。我们可以利用这个结果来模拟我们数据映射的响应。

我们将通过点击“地图力”工具栏中的“插入Web服务功能”按钮,将Web服务添加到我们的地图中。这将打开“Web服务调用设置”对话框,我们可以在其中提供美国地质调查局(USGS)服务的URL地址。

接下来,我们需要定义请求参数和响应内容,这些将构成映射关系中的元素,具体内容将在“调用设置”对话框的下一部分中展示。

我们使用 XMLSpy 软件,根据从浏览器窗口保存的 JSON 数据示例文件,方便地生成了一个 JSON Schema,用于定义响应格式。以下是 XMLSpy 软件中转换后的响应数据的 Schema 视图:

美国地质调查局(USGS)的标高数据输入表提供了我们所需的所有信息,以便定义输入参数。因此,我们可以将这些参数添加到“通话设置”对话框的下一部分

在执行过程中,每个请求的单位和输出值不会改变,我们本来可以指定固定的值。但为了方便,我们会在映射关系中以常量形式提供这些值。所有必要的安全设置也会在“调用设置”对话框中进行配置。当我们点击“确定”关闭对话框后,该Web服务功能将被添加到映射关系中。

源 GPX 文件中的每个轨迹点都会提供一组坐标。在地图绘制过程中,每次处理一个轨迹点时,系统都会向美国地质调查局 (USGS) 发送一个 Web Services GET 请求,并将返回的数据用于替换原始的 elevation (海拔) 数据。

现在,我们只需要将请求和响应中的各个元素连接到输入和输出组件,就像下面所示。在左上角可以看到单位和输出类型的常量,并且在将海拔值插入输出之前,会将该值四舍五入到两位小数。

请注意,输出结果是一个 JSON 文件。虽然在这个映射的局部视图中没有显示输入组件,但它实际上是一个标准的 GPX 文件,格式为 XML。从左侧进入并穿过图中 Web 服务功能的连接线,最终连接到输出组件,这些连接线所代表的值,都将从 XML 输入文件原样复制到相应的 JSON 元素中,不会进行任何修改。

当我们点击“MapForce 输出”按钮时,映射过程会执行,并会生成一个 JSON 文件,就像这里显示的预览图所示:

在生产环境中,我们可以将映射关系保存为 MapForce 执行文件,以便 MapForce Server 能够自动处理这些文件,可以通过命令行或者在 FlowForce Server 的控制下进行。

Altova MapForce 是一款屡获殊荣的图形化数据映射、转换和集成工具,能够将各种格式的数据(包括 XML、数据库、EDI、XBRL、文本文件、Excel、JSON 以及 Web 服务)进行互联互通。 立即下载完整功能的免费试用版,亲自体验一下!