西班牙
斯潘4
本文将继续探讨如何使用FME进行API调用。我们以前通过JSON阅读器.此方法是在FME中使用api的最简单方法,使用硬编码的请求URL从AirVisual的REST API.由于读卡器没有输入端口,我们无法使用其他数据集的属性值进行动态API调用。为了创建提供更大的灵活性和功亚搏在线能性的API工作流,我们推荐了几种变压器。
下面的演示将提供有关如何使用三个不同的转换器访问airvision的API的说明,它们都会生成与以前的教程.本演示的目的是比较允许用户访问api的转换器。它们都提供了不同的好处,并且根据API的需求和所需的输出具有最佳的用例。
我们将通过FeatureReader,和JSONExtractor,以及HTTPCaller.我们将从最简单的方法到最复杂的方法,描述主要的差异,并为每个变压器推荐用例。每个方法的可用性将取决于响应格式和API的要求。airvision的API可以从每个变压器访问,因为:
要创建KML文件,这三个方法的前几个步骤都是相同的。如果已经从airvision检索到API密钥,则可以继续此演示。如果没有,请按照如何使用JSON读取器访问API文章检索您自己的API密钥。如果你想利用沿Safe Software公司总部的坐标追随,请使用以下请求URL:亚搏在线
http://api.airvisual.com/v2/nearest_city?lat=49.178&lon=-122.842&key=
从一开始的页面中选择新的工作空间打开一个空白的画布。
所述参数可以被保留为默认值作为该变压器仅用于启动的工作区,而无需输入数据。如果你想创建一个动态的请求的URL,可以用包含有效GPS坐标和API密钥现有工作流代替造物主,因为这些是需要请求URL的只有三个要素。亚搏在线这个演示的目的,我们将使用一个造物主,以确保每个方法是可比性和一致性。
该FeatureReader是,作用类似于一个读者,而是纳入工作流程中间转换的变压器。亚搏在线要被读取,这意味着存在需要该特征开始的输入端口。像一个典型的阅读器,所述FeatureReader也可以读取JSON,输出值转换成一个属性与指定的坐标系。一个FeatureReader和读取器之间的主要区别是输入端口,这允许用于读取数据的中间翻译的存在。最好用例这个API办法将包括的情况下:
FeatureReader工亚搏在线作流程
你的创造者连接到FeatureReader的发起者端口。在参数方面,格式设置为JSON(JavaScript对象符号)和坐标系统来LL84。这将确保当我们创建一个点要素我们的经度和纬度值将被正确解释。此数据集将请求的URL与您的API密钥取代,其中
运行与功能启用缓存来查看视觉预览您的输出工作空间。选择JSONFeature输出端口和打开视觉预览(按Ctrl + Alt + F)的特征信息窗口来查看你的属性列表。像JSON Reader,请从你的回答每一个值已被处理为一个属性。
其余步骤来创建的几何形状,管理属性和写入KML是相同的步骤5至9覆盖在如何使用JSON读取器访问API文章。对于每个以下步骤的详细说明,请参阅链接的文章。
一个VertexCreator连接到您的FeatureReader的JSONFeature输出端口。AirVisual返回JSON数组最近的监控站的坐标。由于这些值被读入FME作为列表中的属性,你必须指定你打算通过它的索引,这是在大括号表示要使用的值。需要注意的是JSON指数从0开始,而不是1。
在VertexCreator的参数,设置X的值作为坐标阵列中的第一对象(经度),data.location.coordinates {0},和Y值作为第二(纬度),data.location.coordinates {1}。
添加AttributeManager并打开参数。双击下输出属性的细胞重命名你的属性。重命名以下属性:
使用表格下方的黑色箭头来安排你的输出属性的顺序。要删除额外的属性,选择使用Ctrl键或Shift键单击其行,然后单击表格下面的减号按钮。取出剩余的属性。
选择你的输出.KML文件的文件目录和名称。要素类型定义修改为自动,如果它尚未设置,然后单击确定。当与要素类型窗口提示功能类型名称重命名为MonitoringStation_FeatureReader。在AttributeManager输出端口连接到KML作家特征类型。
点击绿色的运行工具栏中的按钮,如果转换成功,去你的文件目录,以确保.KML写入文件。
在谷歌地球,转到文件→打开→你.KML文件
视图应自动缩放到离你最近的监测站的位置。点击引脚上查看您的属性数据。
FME Desktop有多种JSON专用变压器。他们中的大多数允许JSON输入源是一个网址,这意味着这些工具是完美的阅读,分析和验证从网上获得的JSON数据。该JSONExtractor特别提供了最好的解析能力,使用户能够轻松地创建要素属性埋在JSON格式嵌套值了。不像JSON阅读器或FeatureReader,该JSONExtractor不会自动创建出在JSON文本的每一个值的属性。用户可以通过从JSON查询选择他们指定其所需的输出特性。使用这种变压器的好处是,你将只能输出您从API响应所需要的。这是一个方便的特性,可以限制稍后在工作区中处理属性的数量,并且在API响应返回许多属性值时特别有用。最好用例这个API办法将包括的情况下:
JSONExtractor工亚搏在线作流程
将您的创建者连接到JSONExtractor输入端口并打开参数。将输入源更改为File/URL,然后将请求URL复制到File/URL参数中,替换airvision键
JSON查询(JavaScript属性访问器在本例中)通过将数据分段到其嵌套级别来描述属性的路径。如果您需要的值是深度嵌套的,那么JSON查询将更长。我们将从JSON树中选择每个查询,而不是手动输入查询。
首先在JSONExtractor参数中填写Target属性列。这包括我们以前使用的八个属性名,加上纬度和经度。
接下来,选择JSON查询列下的空白空间来公开椭圆。选择省略号以查看JSON树。使用箭头展开JSON,直到找到正确的属性。例如,要找到“城市”,我们只需要扩展“数据”。单击“确定”时,空白区域将自动填充您的JSON查询。
有些属性很难识别,因为它们不像城市、州和国家那样不言自明。对于这些缩写值,您必须引用API文档解码你的反应。其他属性将在数组中返回,例如坐标值。要指定所需的数组值,请首先选择
与JSON阅读器和FeatureReader不同,纬度和经度属性可以直接输入到vertecreator中,而不必担心数组,因为我们已经在上一步中分离了坐标。将X值设置为经度属性,将Y值设置为纬度。
由于没有在JSONExtractor中设置坐标系的选项,我们必须使用CoordinateSystemSetter来指定如何读取X和Y值。将坐标系设置为LL84。
添加AttributeManager并打开其参数。您将注意到,只有您提取的10个原始属性,加上创建者的产品“创建”实例。使用出现在“操作”列下的单元格中的下拉菜单,删除“创建”实例、纬度和经度属性。
选择你的输出.KML文件的文件目录和名称。要素类型定义修改为自动,如果它尚未设置,然后单击确定。在出现“要素类型”窗口提示时,将要素类型名称重命名为MonitoringStation_JSONExtractor。在AttributeManager输出端口连接到KML作家特征类型。
点击绿色的运行工具栏中的按钮,如果转换成功,去你的文件目录,以确保.KML写入文件。
在谷歌地球,转到文件→打开→你.KML文件
视图应自动缩放到离你最近的监测站的位置。点击引脚上查看您的属性数据。
HTTPCaller设备完善,可以处理数千个api,而无需编码。它使用指定的HTTP/HTTPS方法访问请求URL,可以选择通过用户名/密码、命名连接、头或上载的实体进行身份验证。对于请求,用户可以选择修改其查询字符串参数、头,如果要放置、发布、修补或删除,则可以选择上载正文。响应可以保存到属性或文件中,同时在响应头中提供错误和状态代码。此API方法的用例将包括以下情况:
HTTPCaller工亚搏在线作流程
将创建者连接到输入端口并打开参数。为了提高可读性,请使用查询字符串参数分解请求URL的组件。使用设置为GET的HTTP方法输入以下URL作为请求URL。
http://api.airvision.com/v2/最近的城市?
HTTPCaller允许您添加URL查询字符串作为转换器参数。在“名称”列下输入lat、lon和key,然后在“值”列下输入49.178、-122.842和API键,其中
在启用了功能缓存的情况下运行工作区,以便在可视化预览中查看响应正文。如果使用提供的坐标,则“响应”body属性应返回类似的内容:
{ “地位”: “成功”, “数据”:{ “城市”: “新威斯敏斯特”, “状态”: “不列颠哥伦比亚省”, “国”: “加拿大”, “位置”:{ “类型”:”点 “ ”坐标“:[ - 122.91091999999999,49.20678]}, ”当前“:{ ”天气“:{ ”TS“: ”2019-05-17T16:00:00.000Z“, ”湖“:71,” IC“:” 01D “ ”PR“:1008, ”TP“:12, ”WD“:160, ”WS“:3.6}, ”污染“:{ ”TS“:” 2019-05-17T15:00:00.000Z”, “aqius”:12, “mainus”: “P2”, “aqicn”:24, “maincn”: “N2”}}}}
我们必须手动创建查询,因为阅读从属性的JSON文档时JSONExtractor不显示JSON树。因此,我们应该格式化我们的JSON,所以我们可以看它的结构来构建我们的查询。
我们可以格式化我们的JSON响应JSONFormatter.您HTTPCaller输出连接到JSONFormatter并设置JSON文档作为_response_body属性。保留其余参数为默认值,然后单击确定。运行与功能启用高速缓存来查看格式化JSON在视觉预览工作区。您应该看到类似这样的东西:
{ “地位”: “成功”, “数据”:{ “城市”: “新威斯敏斯特”, “状态”: “不列颠哥伦比亚省”, “国”: “加拿大”, “位置”:{ “类型”:“点 “ ”坐标“:[-122.91091999999999,49.20678]}, ”当前“:{ ”天气“:{ ”TS“: ”2019-05-17T16:00:00.000Z“, ”湖“:71,” IC“: ”01D“, ”PR“:1008, ”TP“:12, ”WD“:160, ”WS“:3.6}, ”污染“:{ ”TS“:” 2019-05-17T15:00:00.000Z”, “aqius”:12, “mainus”: “P2”, “aqicn”:24, “maincn”: “N2”}}}}
现在的JSON文本的格式与缩进和空格以提高可读性。嵌套结构清晰布局,使其更容易构建JSON查询.例如,如果我们想根据美国的空气质量指数查询的主要污染物,我们可以看到,“mainus”嵌套在其下在其下的“数据”嵌套“当前”嵌套“污染”。使用这个逻辑,我们可以创建一个JSON查询:
JSON [ “数据”] [ “当前”] [ “污染”] [ “mainus”]
到在阵列中查询值,如监视站的坐标,将使用相同的逻辑,但在阵列中指定一个对象,一个地方数量必须指示。例如,对于经度的JSON查询:
JSON [ “数据”] [ “位置”] [ “坐标”] [0]
我们用零来表示经度,因为它是数组中的第一个值。如果我们想要指定纬度,我们会改用1作为方括号中的数字的地方。
在JSONExtractor,设置JSON文档作为_response_body或_formatted。这些都包含相同的JSON文本,而是一个被格式化与缩进和空格。重新格式化将不会影响JSON查询是如何执行的。
填写使用每一输出属性的名称如下目标属性柱:
根据JSON查询柱,填充每个小区使用在先前步骤中所描述的逻辑其相应的查询。这可能是有帮助的重新格式化的响应主体在另一个窗口中打开,如记事本。请参阅API文档在响应体缩写值进行解码。
纬度和经度属性可以直接输入到VertexCreator,而无需对阵列担心,因为我们已经在前面的步骤中分离的坐标。将X值设置为经度属性,将Y值设置为纬度。
由于没有选择在HTTPCaller设定的坐标系中,我们必须使用CoordinateSystemSetter指定X和Y值将如何被读取。将坐标系设置为LL84。
添加AttributeManager并打开其参数。通过使用下拉菜单中的操作列下,选择删除删除_creation_instance,_response_body,_http_status_code,经度,纬度和_formatted。
选择你的输出.KML文件的文件目录和名称。要素类型定义修改为自动,如果它尚未设置,然后单击确定。当与要素类型窗口提示功能类型名称重命名为MonitoringStation_HTTPCaller。在AttributeManager输出端口连接到KML作家特征类型。
点击绿色的运行按钮,如果转换成功,去你的文件目录,以确保.KML文件保存。
在谷歌地球,转到文件→打开→你.KML文件
视图应自动缩放到离你最近的监测站的位置。点击引脚上查看您的属性数据。
每个描述都会产生相同的.KML文件的三种方法,所以如果你使用的提供的坐标,你会看到类似这样的东西在所有三种情况:
输出.KML文件包含了解析,改名重新排序,8个属性FME中使用不同的变压器。在考虑最终产品,最有效的方法是JSONExtractor,因为它使我们能够筛选出选择值,限制属性在工作流后处理量。亚搏在线此外,JSON树使我们能够轻松地创建查询,而不需要JSON格式的任何先前的知识。如果我们希望每一个响应值是一个输出属性,那么FeatureReader将是最好的选择。虽然HTTPCaller方法包含在JSONExtractor还有,我们不得不因为JSON树不是当输入数据源是动态的可用功能,手动输入查询。用这种方法,就必须有两个API和JSON的工作知识,因为有更多的手动输入。
该HTTPCaller报价在访问的API是最用户控制,但本文的目的,这些特征不突出。有关如何利用HTTPCaller的功能的演示,请访问下一篇文章在“如何访问API使用HTTPCaller”的API系列。您将学习如何访问Movebank REST API返回包含活的动物运动数据的.csv文件。
?2019安全亚搏在线软件公司|合法的