通过rsconnect部署管道工API(未找到处理程序)

问题描述 投票:0回答:1

我有一个带有示例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个回答
0
投票

对不起,我们在这里仍然缺乏优秀的文档。这在部署到RStudio Connect服务器时目前只能正常工作;希望这就是你正在使用的。

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

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

所以你要么......

  1. 将主路由器重命名为plumber.R,在这种情况下,RStudio Connect会在执行您的API时找到并调用该文件。要么
  2. 创建一个返回主路由器的entrypoint.R文件。这种方法允许您在路由器上进行一些额外的自定义(或检测不同的文件)。如果您将其指定为entrypoint.R文件而不是plumber.R文件,则看起来您提供的代码段实际上会起作用。
© www.soinside.com 2019 - 2024. All rights reserved.