【问题标题】:R API to be accessible over the web可通过 Web 访问的 R API
【发布时间】:2017-03-21 15:29:37
【问题描述】:

您好,我有 R 代码,我已使用 plumber 包将其转换为 API。

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

代码位于文件code.R 中,使用上面的行,我可以从我的本地计算机通过URL http://localhost:8000/functionname 访问API

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

【问题讨论】:

  • 你也在输入端口号吗?
  • 你的端口号是8000
  • 错误是什么

标签: r api plumber


【解决方案1】:

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

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

然后访问它只是

your_ip:8000/functionname

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-24
      • 2020-11-12
      • 2017-02-15
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多