如何通过POST REST API调用将XML数据发送到Rapidminer服务
本文处理XML文件。
有关CSV上传,请参阅:
JSON:
当我们想要将整个记录列表作为文件或原始XML数据发送到服务器以进行评分或培训时;我们需要一个POST呼叫。
在我们开始之前,了解如何进行POST调用可能有点令人生畏,因为它不像通过web浏览器传递单个值那么简单,而且很多文章都在讨论如何通过编程语言进行POST调用。我们将使用cURL,这是一个通过URL语法发送和接收文件的命令行工具。它有很多参数,但我们现在只需要两个参数,更多的细节可以通过在命令行中输入“curl -h”来找到https://en.wikipedia.org/wiki/CURL
让我们从一个非常简单的过程开始,它训练一个决策树来对客户进行分类。它意味着能够预测“Response”属性。
数据样本如下:
对于部署,我们有一个流程,它导入上面基于已知响应的数据构建的模型,并将其应用于未知响应的数据。最好使用如下所示的导入配置向导来完成。
点击“数据集元数据信息”,会出现以下对话框,可以在对话框中修改属性名称,使其与训练过程中用于训练预测模型的名称相匹配。
然后我们可以将“Read XML”操作符连接到流程域输入节点。这样它就可以通过POST上传从我们将要创建的服务接收数据。此操作符不再指向任何文件,但将对传递给服务的内容进行评分。
在创建服务之前,请记住,我们要传递的用于评分的数据在response属性中没有值,这些值将被预测。
现在让我们在Rapidminer服务器中创建服务:
没有特殊的参数或宏,只要它指向正确的部署流程即可。然后我们测试该服务以获取URL,在本例中为:
http://RMUK-KBONIKOS:8080/api/rest/process/POSTtes
我们可以在命令行中使用curl,在Windows中,可以从开始菜单中输入“cmd”启动curl,然后我们可以输入以下curl命令:
curl——user admin——upload-file C:\test.xml http://<您的服务器>: 8080 / api /休息/过程/ POSTtes
或者,curl——user admin——data< XML数据>http://<您的服务器>: 8080 / api /休息/过程/ POSTtes
在这种情况下,用户是“admin”,文件是test.xml,保存在C:驱动器中,文件的路径可以更改。当执行此操作时,将要求您输入用户密码,然后您应该得到XML格式的评分记录列表,在本例中,这取决于定义服务时选择的输出格式。
有了上面的帮助,您应该能够创建一个进程,并将其作为Rapidminer Server中的服务公开,然后测试它是否能够通过POST上传接收原始数据或文件,并进行评分并返回输出。
评论
非常感谢@KostasBonikos!帮了很大的忙。
弗拉基米尔•
http://whatthefraud.wtf