如何通过POST REST API调用将XML数据发送到Rapidminer服务

KostasBonikosKostasBonikos 成员职位:25Maven
2018年11月编辑 知识库


本文处理XML文件。

有关CSV上传,请参阅:

http://community.www.kenlockard.com/t5/RapidMiner-Server-Knowledge-Base/Scoring-a-whole-file-with-a-POST-API-call-to-Rapidminer-Server/ta-p/37397

JSON:

http://community.www.kenlockard.com/t5/RapidMiner-Server-Knowledge-Base/Sending-a-JSON-file-to-a-Rapidminer-Service-through-a-POST-API/ta-p/37418

当我们想要将整个记录列表作为文件或原始XML数据发送到服务器以进行评分或培训时;我们需要一个POST呼叫。

在我们开始之前,了解如何进行POST调用可能有点令人生畏,因为它不像通过web浏览器传递单个值那么简单,而且很多文章都在讨论如何通过编程语言进行POST调用。我们将使用cURL,这是一个通过URL语法发送和接收文件的命令行工具。它有很多参数,但我们现在只需要两个参数,更多的细节可以通过在命令行中输入“curl -h”来找到https://en.wikipedia.org/wiki/CURL

让我们从一个非常简单的过程开始,它训练一个决策树来对客户进行分类。它意味着能够预测“Response”属性。

每日demo.png

数据样本如下:

每日演示数据。png

对于部署,我们有一个流程,它导入上面基于已知响应的数据构建的模型,并将其应用于未知响应的数据。


在XML中,得分数据看起来不同。在将XML文件上传到服务之前,最好先在Studio中打开该文件,以便配置“Read XML”操作符,以便稍后解析XML。

1 .部署流程XML.png

最好使用如下所示的导入配置向导来完成。

0 XML Load.png



一旦数据被加载,应该有一个“xpath for examples”的值,“xpath for attributes”也应该被自动填充,如下所示:

名称通常没有空格,这就是它们与模型训练的数据不匹配的原因,我们将在下一步中修复这个问题。


2 XML enumeration.png

点击“数据集元数据信息”,会出现以下对话框,可以在对话框中修改属性名称,使其与训练过程中用于训练预测模型的名称相匹配。

3 XML元数据info.png

然后我们可以将“Read XML”操作符连接到流程域输入节点。这样它就可以通过POST上传从我们将要创建的服务接收数据。此操作符不再指向任何文件,但将对传递给服务的内容进行评分。

1 .部署流程XML.png

在创建服务之前,请记住,我们要传递的用于评分的数据在response属性中没有值,这些值将被预测。

每日演示数据无响应。png

现在让我们在Rapidminer服务器中创建服务:

创建service.png

没有特殊的参数或宏,只要它指向正确的部署流程即可。然后我们测试该服务以获取URL,在本例中为:

http://RMUK-KBONIKOS:8080/api/rest/process/POSTtest ?

我们可以在命令行中使用curl,在Windows中,可以从开始菜单中输入“cmd”启动curl,然后我们可以输入以下curl命令:

curl——user admin——upload-file C:\test.xml http://<您的服务器>: 8080 / api /休息/过程/ POSTtest ?

或者,curl——user admin——data< XML数据>http://<您的服务器>: 8080 / api /休息/过程/ POSTtest ?

在这种情况下,用户是“admin”,文件是test.xml,保存在C:驱动器中,文件的路径可以更改。当执行此操作时,将要求您输入用户密码,然后您应该得到XML格式的评分记录列表,在本例中,这取决于定义服务时选择的输出格式。

result.png

有了上面的帮助,您应该能够创建一个进程,并将其作为Rapidminer Server中的服务公开,然后测试它是否能够通过POST上传接收原始数据或文件,并进行评分并返回输出。



kypexin Thomas_Ott

评论

登录注册置评。