我使用OpenCPU作为表示层来生成基于R包的一些图。图表运行良好,现在用户需要下载用于生成图表的数据以进行更深入的分析。 有可能检索数据吗? 可以不对那些检索数据的函数进行双重调用(我连接到DB)?
我想放一个按钮,然后最终用户可以点击并开始下载文件(纯文本或任何格式),并将图表中显示的信息与收到的数据相关联。
非常感谢您的回复。
答案 0 :(得分:1)
您可能想在R中创建两个函数:
getdata
:从数据库中检索数据并返回数据框的函数。makeplot
:一个带有dataframe参数的函数,用于创建绘图并且不返回任何内容。然后您的客户可以单独打电话给他们。首先,客户端调用getdata
从数据库中检索数据,服务器将使用表示服务器上返回的数据框对象的临时{key}
进行响应,例如x01234567
。
然后,您可以使用此键下载数据集或将其用作参数来创建绘图。要下载数据,只需创建一个超链接,例如:
http://your.server.com/ocpu/tmp/x01234567/R/.val/csv
http://your.server.com/ocpu/tmp/x01234567/R/.val/tab
http://your.server.com/ocpu/tmp/x01234567/R/.val/json
要创建绘图,客户端调用makeplot
并传递x01234567
作为数据框的参数值。 OpenCPU
服务器将自动查找该密钥的对象,以查找getdata
之前返回的数据框对象。