R管道数字海洋上的api部署,招摇

时间:2017-11-09 13:59:34

标签: r api swagger plumber

我正在使用水管工将R api部署到数字海洋。在这里提供一个可重复的例子很难,但我想要的是swagger端点编译和可用。它在本地工作,但不在数字海洋服务器上工作。

在本地我这样做:

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

现在可以在http://127.0.0.1:8000/__swagger__/

获取招摇文档

当我按如下方式部署到服务器时:

library(analogsea)
library(plumber)
my_droplet <- as.droplet("my_droplet")

do_deploy_api(
  droplet = my_droplet,
  path = "my_path",
  localPath = "my_local_path",
  port = 8000
)

do_forward(my_droplet, "my_path")

现在我转到[my_remote_ip]/my_path/__swagger__/我得到404

任何人都知道如何做到这一点? 非常感谢。

1 个答案:

答案 0 :(得分:0)

由于对话here,我找到了一个工作。在do_deploy_api()do_forward()之后我执行此操作:

droplet_execute([my_droplet], {
  system("sed -i 's/pr$run(port=8000)/pr$run(port=8000, swagger = TRUE)/g' /etc/systemd/system/plumber-[my_api].service", intern = TRUE) 
  system("systemctl daemon-reload", intern = TRUE)
  system("service plumber-[my_api] restart", intern = TRUE)
})