我有一个带有示例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
答案 0 :(得分:0)
我们仍然缺乏优秀的文档,抱歉。这在部署到RStudio Connect服务器时目前只能正常工作;希望这就是你正在使用的。
在内部,RStudio Connect使用plumber::plumb(dir=___)
函数来调用您的API。你可以看到那里的文档
包含plumber.R文件的目录,作为管道工路由器定义进行解析。或者,如果找到了entrypoint.R文件,它将优先并负责返回一个可运行的Plumber路由器。
所以你应该......
plumber.R
,在这种情况下,RStudio Connect会在执行您的API时找到并调用该文件。或entrypoint.R
文件。这种方法允许您在路由器上进行一些额外的自定义(或检测不同的文件)。如果您将其指定为entrypoint.R
文件而不是plumber.R
文件,则看起来您提供的代码段实际上会有效。