部署包含R功能的API的最简单方法是什么?

时间:2013-12-31 03:16:20

标签: r api

我想使用以下变量从大约50,000个犯罪的数据框架中制作本地犯罪API;犯罪类型作为一个因素,犯罪日期和经度和经度。

我想在我的函数中使用我的构建来选择时间范围,犯罪类型,最重要的是,只返回给定范围内给定半径内发生的犯罪。

我自己学会了如何使用GET和POST进行api以及在R对象和json之间进行转换,但我对构建api知之甚少。如果有人请给我一个简单的实现方向,由一个很棒的Web服务托管。免费托管实验将是首选,但如果有一个简单的方法来实现这一点,这是一个很酷的微不足道的价格。

由于

1 个答案:

答案 0 :(得分:4)

对于简单的API调用,我认为最好使用RApache。 按照http://rapache.net/manual.html

中的说明安装RApache

在httpd.conf中设置Apache指令,这将确保/ var / www / brew下的所有文件都被解析为R脚本

<Directory /var/www/brew>
    SetHandler r-script
    RHandler brew::brew
</Directory>

使用您的API创建R脚本,例如mycrimeapi.R并将其放在/ var / www / brew文件夹下。该R脚本文件可以例如看起来如下:

<%
require(jsonlite)
load("yourdataset.RData") # this contains your crimes data frame
mycrimes <- subset(crimes, crimetype %in% GET$crime & crimedate %in% as.Date(GET$crimedate))
cat(toJSON(mycrimes))
%>

现在有人可以致电http://localhost/brew/mycrimeapi.R?crime=crimewhichisreallynasty&crimedate=2014-01-01来致电您的API。将localhost替换为您托管API的服务器的IP。

使用RApache时,每次获得传递给API调用的GET, POST, COOKIES, FILES, SERVER个变量。因此,如果您想在通话中使用POST而不是GET示例,请继续。有关这些变量,请参阅http://rapache.net/manual.html中的文档。