首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R plumber api在数字海洋上使用swagger部署

R plumber api在数字海洋上使用swagger部署
EN

Stack Overflow用户
提问于 2017-11-09 21:59:34
回答 1查看 941关注 0票数 3

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

在本地,我这样做:

代码语言:javascript
复制
library(plumber)
r <- plumb("api/plumber.R")
r$run(port=8000)

现在可以在http://127.0.0.1:8000/__swagger__/上找到swagger文档。

当我部署到服务器时,如下所示:

代码语言:javascript
复制
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

有人知道怎么做吗?非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2017-11-17 01:03:34

多亏了对话here,我找到了一个变通的方法。在do_deploy_api()do_forward()之后,我会这样做:

代码语言:javascript
复制
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)
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47203758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档