2016-06-16 13 views
0

У меня есть база данных PostgreSQL, для которой я создал RESTful Api, используя Talend DI, которые позволяют мне запрашивать таблицы.
Теперь, мой вопрос: как позвонить в Api's Shiny и отобразить полученные данные?Показать данные HTTP GET в SHINY

пример HTTP GET Ответ:

[{"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: У меня нет никаких проблем делать это с помощью пакета «RPostgreSQL» в Shiny для прямого подключения к базе данных, но я предпочитаю, чтобы отделить его от блестящей и что бы с помощью своих веб-сервисов

ответ

1

Если у вас есть 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 "отправляет запрос GET на выбранный URL. Возможно, это не так, как вы хотите реализовать это, но, возможно, это дает вам представление о том, как это можно сделать.

Если я использую пример жала запроса я мог бы для значения доступа экземпляра «param1» 's, набрав:

content(res)$args$param1 
+0

работал очень хорошо, но это делает данные, как это не в виде таблицы, как может Я положил его в стол? –

+0

Вам необходимо построить data.frame или матрицу для визуализации таблицы, посмотрите на '? RenderDataTable' или'? RenderTable'. Я обновил свой ответ, чтобы установить параметры GET, возвращаемые в таблицу. –

 Смежные вопросы

  • Нет связанных вопросов^_^