API 数据映射

利用 MapForce 进行 Web 服务数据集成是一种流行的且经过验证的策略,旨在获取及时信息,用于分析或生成用户友好的报告。 在之前的文章中,我们展示了如何通过读取 JSON 格式的 Web 服务数据,并将数据映射到格式丰富的 Excel</1> 表格,从而实现对繁忙港口 5 天天气预报的 API 数据映射。 我们使用的天气 API 由 OpenWeather 提供,该公司提供历史、当前和天气预报数据。

然而,从任何API集成数据并非一劳永逸的任务。当您构建基于外部数据的解决方案时,必须能够快速应对数据结构的变化。在我们的最初集成项目中,OpenWeather修改了其API提供的数据。现在,API将风速和阵风预测数据分别以JSON属性的形式提供。由于阵风被认为是苏伊士运河最近堵塞事件的原因,这些新的数据对我们的应用程序非常重要!幸运的是,无论是MapForce的数据映射还是Excel电子表格,都可以轻松修改以添加新的数据。

在修改API数据映射之前,我们需要了解新版Excel输出格式的变化。以下是5天预报中新版主表格的部分内容:

电子表格的创建者在“风速”和“风向”两列之间新增了一列,用于显示每个天气预报的预计阵风情况。

电子表格的标题部分也出现了一些改动。风力图上增加了一条表示阵风速度的线,并添加了港口的地理坐标,此外,还报告了未来5天预测期间的最大阵风速度。

工作表中新增了一个名为“查看当前港口活动”的可点击按钮,点击后会打开一个网页。所有商用船舶都配备了用于自动识别系统 (AIS) 的设备,该系统会持续广播船舶的位置信息,以避免碰撞并用于绘制海图。MyShipTracking.com 是众多利用 AIS 技术来报告实时 AIS 数据,并帮助人们更好地了解全球船舶运行情况的网站和企业之一。

点击电子表格中的按钮,会打开一个位于myshiptracking.com的页面,该页面会显示地理位置附近的活动信息

为了支持这些对目标输出的改进,我们只需要对数据映射进行少量调整:我们需要将风速数据插入到表格中的正确位置,并且需要将地理位置坐标进行映射。

首先,我们手动在浏览器窗口中运行天气API,以获取一个新的响应示例,其中包含风速突增数据。然后,我们使用XMLSpy为API结果生成一个新的JSON Schema。保存新的JSON Schema时,如果使用原始文件名,系统会自动将“风速突增”(Gust)添加到API数据映射中的“响应”字段。

附加在原始地理坐标数据上的标签,可以帮助您轻松找到在 Excel 表格中插入新的“风速”列的正确位置

从右键菜单中选择“在当前单元格之前添加单元格”,会弹出一个对话框,用于填写相关信息

MapForce 能够方便地维护 K 列和 L 列的映射关系,因此我们只需要连接 J 列即可。

新的经纬度坐标已添加到电子表格中,分别位于G5和I5单元格。每个港口的坐标已经包含在原始港口列表中,因为我们使用这些坐标向API请求天气预报数据。我们已将这些单元格地址添加到目标列表的底部。

以下是 MapForce 映射面板中修订后的映射视图,其中用于风速预测的新连接已突出显示

为了进行最后一次优化,我们在请求列表中增加了更多港口,包括苏伊士运河以及欧洲的几个大型海港。我们通过编辑原始的 JSON 文件(该文件包含请求列表),并在 XMLSpy 中使用 XML 格式,添加了这些新的港口。以下是包含港口请求的新的 JSON 文件,该文件将作为 API 数据映射的输入,并在 XMLSpy 的网格视图 中显示:

点击映射窗口底部的“输出”按钮,即可执行映射操作,并打开“输出”视图,显示第一个输出文件。如果系统上安装了Excel 2007或更高版本,MapForce会自动打开Excel,以展示结果

对于源列表中每个端口,都已生成相应的结果。您可以选择任何Excel文件进行预览:

在预览窗口中点击“查看当前端口活动”按钮,其功能与直接在Excel中打开文件时完全相同:

结果是根据港口的纬度和经度计算得出的:

地图上的每一个点都代表一艘安装了AIS(船舶自动识别系统)的船只,该系统正在实时报告其位置信息。为了进一步验证我们的结果,我们可以预览任何其他输出文件,并查看链接以获取另一个港口的地图。以下是德国汉堡港的地图:

红色圆点代表油轮,绿色圆点代表货船。我们可以点击任何一个圆点,以获取关于该船的详细信息

您可以查看关于“Web服务集成”的原始文章,观看一个简短的MapForce演示视频,或者下载免费试用版,其中包含教程、帮助文档以及更多示例,帮助您开始自己的API数据映射项目,或者其他数据集成、转换和处理任务!