0

我有一个包含示例 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()目录...

它部署没有错误,但似乎没有找到处理程序: swagger 页面的屏幕截图

4

1 回答 1

0

抱歉,我们这里仍然缺少好的文档。这目前仅在部署到 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
于 2017-12-19T14:41:46.780 回答