【问题标题】:Deploying plumber API via rsconnect (Handler not found)通过 rsconnect 部署管道工 API(未找到处理程序)
【发布时间】:2017-12-19 01:08:56
【问题描述】:

我有一个包含示例 API 函数的目录 (testAPI.R):

#* @get /mean
normalMean <- function(samples=10){
 library(plumber)
 data <- rnorm(samples)
 mean(data)
}

rsconnect::deployAPI() 函数想要指向一个目录,其中包含一个名为plumber.R 的文件,该文件返回一个plumb 对象。所以我在目录中有文件plumber.R

library(plumber)
plumber::plumb("testAPI.R")

然后在目录上调用rsconnect::deployAPI()...

它部署没有错误,但似乎没有找到处理程序: screenshot of the swagger page

【问题讨论】:

    标签: r plumber


    【解决方案1】:

    抱歉,我们这里仍然缺少好的文档。这目前仅在部署到 RStudio Connect 服务器时才能正常工作;希望这就是你正在使用的。

    在内部,RStudio Connect 使用 plumber::plumb(dir=___) 函数来调用您的 API。您可以在那里查看文档

    包含要解析为管道工路由器定义的管道工.R 文件的目录。或者,如果找到 entrypoint.R 文件,它将优先并负责返回可运行的 Plumber 路由器。

    所以你应该...

    1. 将主路由器重命名为plumber.R,在这种情况下,RStudio Connect 会在执行 API 时找到并调用该文件。或者
    2. 创建一个entrypoint.R 文件,该文件返回您的主路由器。这种方法允许您在路由器上进行一些额外的自定义(或探测不同的文件)。如果您将其指定为 entrypoint.R 文件而不是 plumber.R 文件,您提供的代码 sn-p 似乎实际上可以工作。

    【讨论】:

    • 太好了,我尝试重命名文件entrypoint.R,现在它运行良好。在这个阶段我可能不够熟练,无法帮助编写文档,但希望在使用它一段时间后,我可以贡献一些东西。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 2021-05-04
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 2020-01-10
    相关资源
    最近更新 更多