r - 是否可以在 R Plumber 中将每个端点分成自己的文件?
问题描述
我希望分离出我复杂的 API 结构,以便我具有以下结构。我想知道。有没有办法将 users/ 文件夹下的所有文件挂载到同一个 ./api/v1/users 路由?项目/?需要考虑的一个关键点是,我也会在这些文件中定义动态路由(例如 ./projects/<project_id>)
在闪亮的情况下,要完成这样的 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”的函数,用于处理两个动词之一)
解决方案
答案有点像。使用 'here' 包允许您导入在与管道工文件相关的文件中定义的函数。然后在您的管道工文件中,您可以填写您的装饰器并将您的功能放在它之后。
推荐阅读
- javascript - jquery的视差效果
- c++ - 错误:any_cast
(any&&) 在 Windows 上损坏但在 Linux 中有效 - python - 无法从“不可读”pdf文件中的某些图像中提取页码
- python - 无法从“烧瓶”导入名称“烧瓶”
- kubernetes - [cloud-running-a-container]:在默认命名空间中找不到资源
- javascript - 使用 RegExp 突出显示字符串中的匹配字符
- mysql - SQL:选择给定日期时间的每一天的最后一条记录
- javascript - 当特定属性与其他对象匹配时,比较相同数组的对象并将它们的某些属性分组
- botium-box - Botium - 如何在 botium-bindings 中获取机器人消息
- google-maps - 来自 Google 表格数据的地理编码