在SHINY中显示HTTP GET数据

时间:2016-06-16 09:36:49

标签: json http-get shiny httr

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

http get response的例子:

ftp.storbinary(" ".join(["STOR", file_name]), ftp_file)

Ps:使用Shiny中的“RPostgreSQL”软件包直接连接到我的数据库,我没有问题,但我更喜欢将它与闪亮分开,这可以通过使用我的网络服务

1 个答案:

答案 0 :(得分:2)

如果您拥有所有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&amp; param2 = value2”会向所选URL发送GET请求。这可能不是你想要实现它的方式,但也许这可以让你知道如何做到这一点。

如果我使用示例查询sting,我可以通过键入以下内容来访问“param1”的值:

content(res)$args$param1