斯潘8
斯潘4
为了支持实时数据应用程序,您可能需要将数据发布到FME服务器,并触发一个将此数据作为源数据集读取的工作区。例如,您可以为可以发布传感器数据的传感器创建触发器,也可以创建自己的应用程序,将数据发布到FME服务器。
以下服务可以接受使用HTTP POST发送到FME服务器的原始数据:
1.创建一个简单的文本文件,该文件的结构表示将要发送的数据样本。在本教程附带的“示例”文件夹中,有一个非常简单的数据文件测试样品可以使用。当使用数据流服务发布到FME服务器时,稍后将调用此文本文件。
2。制作一个FME工作区,它将读取您发布给它的数据。在大多数情况下,最好使用文本文件阅读器。即使数据是XML或JSON,您仍然可以使用文本文件阅读器,但是您应该将reader参数read whole file一次性设置为yes。然后,您可以使用适当的XML或JSON转换器在工作区中进一步解析数据。
三。将写入程序添加到工作区,以获取将发送到数据下载或数据流服务的输出数据。在附加的示例工作区(receivepost.fmw)中,我们只使用文本文件编写器返回相同的数据。
注意:示例工作区,接收站.fmw,可以使用“示例”文件夹,而不是创建自己的工作区。
4。Publish the workspace to FME Server into a repository named "training".
5。在发布到FME服务器向导的最后一个屏幕中,click on the Edit button beside the Data Download Service.
第一,ensure that the Send HTTP Message Body to Reader parameter is set to your Reader.您将在下载中看到另一个名为include writers的参数。确保已将此设置为文本文件编写器。
6.对数据流和作业提交者服务重复上述步骤
7。单击“通知服务”的“编辑”,其中的设置略有不同。单击subscribe to topics参数的省略号(…)并选择receivePost主题。单击确定。确保获取主题消息的参数设置为源文本文件。
单击“确定”关闭“编辑通知服务属性”对话框。确保数据下载,数据流,工作提交人,选择“通知服务”,然后单击“发布”。
请记住,您可以使用数据上载服务将文件数据发送到您的工作区,但我们希望应用程序或服务能够直接将数据发布到FME服务器。
8。在本教程附带的“samples”文件夹中,有一个postfmeserver.html文件,它提供了一个简单的网页,使用javascript将数据发送到post对象。You can copy this HTML file into your own web directory or into the FME Server Tomcat ROOT web directory
9。现在尝试将数据发布到不同的FME服务器服务,并查看响应。您需要输入自己的FME服务器用户名和密码来发布数据。
首先尝试默认的数据流服务。在文本框中键入一些数据,例如:“渥太华,加拿大“,然后单击“发布到FME服务器”。您将在下面的文本框中看到FME服务器响应。您发布到数据流服务的任何数据都将作为源数据发送到工作区读卡器,然后直接将工作区写入的内容发送回工作区。
10。接下来尝试使用作业提交者服务。确保将目标URL更改为源“fmejobsubmitter”而不是“fmedatastreaming”,您可以添加几个服务参数;一个指定返回格式为JSON(也可以指定XML),另一个指定异步模式:
/fmejobsubmitter/training/receivepost.fmw?opt_serviceMode=async&opt_responseformat=json
异步模式意味着客户机不会等待作业完成,而FME服务器只返回作业ID,如下所示:
“serviceResponse”:“statusInfo”:“mode”:“异步”,“status”:“成功”,“工单编号”:100878
单击“发布到FME服务器”以尝试“作业提交者”服务。
11。接下来,让我们试试数据下载服务。Change the Target URL from "fmejobsubmitter" to "fmedatadownload".如果使用异步模式,数据下载服务将返回一个网页,其中包含指向数据下载zip文件或jobid的链接。要输入的URL如下所示:
/fmedata下载/培训/接收post.fmw
Click Post to FME Server to test the Data Download service.
12.您还可以使用通知服务将数据发布到通知主题。在步骤7的前面,发布工作区时,您在主题ReceivePost下为它创建了订阅。这意味着当我们发布到该主题时,订阅该主题的任何内容都将被触发。将目标URL从“fmedatadownload”更改为“fmenotification”。除非禁用REST服务上的安全性,否则可能需要使用安全令牌,但可以使用以下URL进行尝试:
/fmerest/v3/notifications/topics/receivepost/publish?令牌=B03050F246D741995A9E17E919EEE5284896B11D
单击“发布到FME服务器”测试通知服务。
祝贺你!现在您已经成功地将数据发布到FME服务器,并触发了一个工作区,该工作区使用几个不同的FME服务将这些数据作为源数据集读取!
嗨,肯,
在fmerest/v2/apidoc中:
我了解在FME服务器API上使用一个日志需要在请求URL和正文中的文件中使用一些查询字符串参数。
根据网上的很多文件,post应该接受主体中的参数,而不是作为查询字符串。网址:http://www.w3schools.com/tags/ref_httpmethods.asp
FME服务器是否接受在正文中设置这些参数?
如果我想将数据发布到数据流服务,我是否可以在正文中指定已发布的参数以及要发布到我的服务的文件(我从未尝试过这样做)?
或者,是否必须对已发布的参数和文件体使用查询字符串(开发人员不喜欢)?如果是这样,为什么FME服务器的RESTAPI与REST标准不同?还是这样?
谢谢。
.JP
?2019安全亚搏在线软件公司|合法的