【发布时间】:2018-08-26 20:40:33
【问题描述】:
我正在学习我想要/正在尝试制作的与篮球相关的数据即网络应用程序的全栈开发。鉴于我拥有的技术技能,我有一个关于解决我的数据问题的最佳方法的问题。
几个月前,我使用 R 创建了 following R Shiny App。我的这个应用程序的堆栈/非常不完整的后端是:
- 我使用 R Shiny 启动应用程序,该应用程序托管在带有 Shiny Server 的 EC2 实例上
- 在 R 中,我有一个名为 scraper.R 的脚本,它每天(每天一次)从 MySportsFeed(一个很棒的体育 API)查询数据,并将新的每日数据更新为我拥有的 8 个 CSV 文件中的一个。 (我的 Shiny 应用中的每个图表都有不同的 CSV 文件)
- 然后,我的 R Shiny 应用将 CSV 读入 app.R 文件,该文件包含整个应用的所有代码。
为了扩展这个应用程序并让它变得更好,我一直在学习全栈 JavaScript 开发,并且我即将开始将这个 Shiny 应用程序编码为 React 应用程序。
我当前的挑战/考虑是我应该如何管理我的 React 应用程序中的数据。特别是:
我的 scraper.R 文件使用 dplyr 和其他 R 库进行 大量 数据操作。从 MySportsFeed 的 API 提供的表单中获取数据,到我的 Shiny 应用程序所需的表单,我的所有图形和图表,是相当多的。
话虽如此,我想继续使用 R 来调用 MySportsFeed API 并格式化数据。我当然想取消 CSV 文件,但这并不容易。 8 个 CSV 文件中的每一个都包含数百次调用 MySportsFeed API 的结果。 (对 MySportsFeed 的每个 API 调用可能会给我 1 场 NBA 比赛数据,而 CSV 文件已更新了 1000 场 NBA 比赛数据)。
我相信我想将 (a) 从 CSV 文件读取数据到 R Shiny 应用程序中替换为 (b) 使用托管的数据馈送调用我自己的 API 端点(我可以在 R 或 Javascript 中创建 API 端点,R的水管工很适合这个)
我想我想将 (a) 将数据存储在 CSV 文件中替换为 (b) 将数据存储在 mongo 数据库中,该数据库可以轻松插入 React 应用程序。
然后我的问题是:有没有一种直观的方法可以将以下内容连接在一起:
- 我的 R 代码(它调用 MySportsFeed API、获取新数据并将该数据处理成图表格式)
- 一个 API(无论是 R 管道工 API 还是包含我所有数据的 javascript API)
- mongo 数据库(用于保存我所有历史报废的数据)。
提前致谢。
编辑 - 几个月前,我在一个 RShiny 应用上发了一个帖子 here,我想把它变成一个 React 应用。
【问题讨论】:
-
这对于 Plumber 或者正如其他答案提到的 OpenCPU 是可行的。这是一个托管自己的 Vue.js 客户端的 Plumber 应用程序示例:github.com/trestletech/movies-plumber。你可以用 React 做一些非常相似的事情。
标签: mongodb reactjs api shiny plumber