在 SHINY 中显示 HTTP GET 数据

Display HTTP GET Data in SHINY

我有一个 PostgreSQL 数据库,我使用 Talend DI 创建了 RESTful Api,它允许我查询表
现在我的问题是如何在 Shiny 中调用我的 Api 并显示接收到的数据?

http 获取响应的示例:

 [{"medical_consultations":{"medical_consultation":[{"id":"1640087","id_consultation":"GFAPAAPA P 834406012009","consultation_date":"07-01-2009","id_center":"APA"},{"id":"1640088","id_consultation":"GFAPAAPA P1079007012010","consultation_date":"08-01-2010","id_center":"APA"},{"id":"1640089","id_consultation":"GFAPAAPA P1098811052007","consultation_date":"12-05-2007","id_center":"APA"}]}}]

Ps:我在 Shiny 中使用 'RPostgreSQL' 包直接连接到我的数据库没有问题,但我更喜欢将它与 Shiny 分开,这将通过使用我的网络服务

如果您有 API 所有设置,那么您可以这样做:

require(shiny)
require(httr)

url <- "http://httpbin.org/get?"

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      textInput('GETargs',"GET string"),
      actionButton('sendGET','Send')
    ),
    mainPanel(
      verbatimTextOutput('GETresponse'),
      dataTableOutput('table1')
    )
  )
)

server <- function(input, output, session) {
  observeEvent(input$sendGET, {
    getargs <- input$GETargs

    if( is.null(input$GETargs) ) getargs <- ""

    res                <- GET(sprintf("%s%s",url, getargs))
    output$GETresponse <- renderPrint(content(res))

    output$table1 <- renderDataTable( as.data.frame(content(res)$args) )
  })
}

runApp(shinyApp(ui,server))

例如,将文本框中的文本设置为 "param1=value1&param2=value2" 会向选定的 URL 发送 GET 请求。这可能不是您想要实现的方式,但也许这会让您对如何完成此操作有所了解。

如果我使用示例查询字符串,我可以通过键入以下内容访问 "param1" 的值:

content(res)$args$param1