可通过Web访问的R API

时间:2017-03-21 15:29:37

标签: r api plumber

您好我有R代码,我已使用管道工包转换为API。

library(plumber)
r <- plumb("code.R")
r$run(port=8000)

代码位于code.R文件中,使用上述代码,我可以通过网址http://localhost:8000/functionname

从本地计算机访问API

但是,当我用我的IP地址替换本地主机并从网络中的其他计算机访问本地主机时,我无法访问该API。这是为什么?

2 个答案:

答案 0 :(得分:3)

使主机在我的机器上显式工作。

r$run(host = "0.0.0.0",port=8000)

然后访问它只是

your_ip:8000/functionname

答案 1 :(得分:0)

默认情况下,管道工监听主机0.0.0.0,这意味着它应该监听所有设备,无论是您的IP还是本地主机。听起来您的机器有防火墙,或者您的组织可能在您正在使用的机器前面有防火墙。您还需要确认IP地址是可路由的(例如,您没有尝试从另一个LAN访问192.168。地址)。

我不鼓励您实际尝试在您的个人计算机或正在进行迭代开发的服务器上托管API,因为它需要打开防火墙并接受更敏感的服务器上的流量。此处的最佳做法是将API部署到旨在接收公共流量的服务器。这是一个简单的方法来获得现在内置于管道工开发版本的设置: https://plumber.trestletech.com/docs/digitalocean/