r - 是否可以在 R Plumber 中将每个端点分离到其自己的文件中?

标签 r rest plumber

我希望分离出复杂的 API 结构,以便拥有以下结构。我想知道。有没有办法将 users/文件夹下的所有文件挂载到同一个 ./api/v1/users 路由?项目也一样/?一个关键的考虑点是,我也会在这些文件中定义动态路由(例如 ./projects/)

在 shiny 中,要完成像这样的事情,Id 使用 source('file.R', local=TRUE) 但 Plumber 的工作方式不同。 我以这种方式构建它的原因是为了降低开发过程中的复杂性(而不是向同一端点添加多个动词)。

+-- v1/
|+-- users/
|+----- GET.R
|+----- POST.R
|+-- projects/
|+----- GET.R
|+----- POST.R

我测试了挂载,但遗憾的是无法将每个文件夹中的多个文件挂载到相同的路由名称。查看示例代码

v2 <- plumber::Plumber$new("api/v1/projects/GET.R")
root$mount(paste0(ROOT_URI,"/v1"), v2)
v1 <- plumber::Plumber$new("api/v1/projects/POST.R")
root$mount(paste0(ROOT_URI,"/v1"), v1)

(在 GET.R 和 POST.R 文件中各有一个名为“projects”的函数,用于处理两个动词之一)

最佳答案

答案有点像。使用“此处”包允许您导入在与您的水管工文件相关的文件中定义的函数。然后在你的管道工文件中,你可以填写你的装饰器并将你的函数放在它后面。

关于r - 是否可以在 R Plumber 中将每个端点分离到其自己的文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66594148/

相关文章:

r - 使用Rocker调试R软件包(如何更改版本?)

r - R 中 model.matrix 中有序因子的列名称

authentication - 如何验证来自shinyapps.io 上托管的应用程序对管道工 API 的调用?

json - 让 R Plumber API 在 POST 上使用 JSON

r - 如何在 R 中进行编码,为什么使用 ' 而不是撇号 (') 以及如何解决它

r - 如何从 lme4 中仅提取公式的随机效应部分

ios - 如果用户在另一台设备上登录,则自动注销用户

ruby-on-rails - Rails 更新操作的路由助手是什么?

javascript - 访问控制允许来源不允许 AJAX 来源 null

r - 如何在 R Plumber 中获取客户端 IP 地址