是否可以将数据发送到闪亮的应用程序?

Eli*_*ias 7 javascript rest web-applications r shiny

我正在使用 java(后端)和 javascript 构建一个 web 应用程序。在某些时候,我的应用程序会从远程数据库中检索一些特定数据。我想在我的 web 应用程序中嵌入一个闪亮的应用程序,它可以读取、分析和可视化这些数据。检索到的数据取决于用户与我的应用程序的交互。

所以基本上我试图将数据发送到一个闪亮的应用程序(可能使用 REST)。这可能吗?

GyD*_*GyD 5

只是添加一个例子:如果你想:

  1. 在 R 中计算 -> 在任何 Web 应用程序中使用:plumber
  2. 从 REST API 获取 -> 闪亮:httr

httr使用在 Shiny 中加载一些 JSON 数据(来自OpenCPU )的最小示例:

library(shiny)
library(httr)
library(dplyr)

ui <- fluidPage(
  tableOutput("tbl")
)

server <- function(input, output, session) {
  output$tbl <- renderTable( {
    # GET request from an API
    req <- httr::GET(url = "cran.ocpu.io/ggplot2/data/msleep/json")
    req_parsed <- httr::content(req, type = "application/json")

    # Convert to data.frame
    dplyr::bind_rows(req_parsed)
  })
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)


use*_*745 4

当然可以!R Shiny 应用程序可以像任何 Web 应用程序一样接收数据。例如,它可以运行一个内部计时器来从 API 获取数据、从网络上抓取数据或访问数据库。

一些建议

  • 您可以简单地连接到远程数据库(例如,这是连接到 sql server 数据库的方法(它比看起来更容易)
  • 您可以使用任何适合您的语言构建 API。如果您想使用 R,该plumber包将是一个很好的起点
  • 一种不寻常的方法(只是为了展示什么是可能的)是,如果您已经知道如何构建一个网络应用程序,那么您可以制作一个显示您希望闪亮的应用程序能够访问的数据,然后让闪亮的应用程序抓取数据无论您选择什么时间间隔(5 秒、5 小时、5 天等)。请注意,这对于任何敏感数据都不是一个好的解决方案

最常用的两个抓取包是rvest和 (Hadley Wickham's) httr。这是访问 API 或从网络上任何地方抓取原始数据的良好开端

如果您想连接到数据库,我建议您决定使用哪个数据库,然后在谷歌上搜索如何使用 R 连接到数据库。成功后,您可以将该代码移至 Shiny 应用程序内!