2016-01-20 54 views
4

我有一個閃亮的應用程序(使用閃亮的儀表板)。 我想在URL中傳遞參數,使用這些來產生一些數據,然後將其返回給調用應用程序。我把這個在我的服務器:R shiny - 如何用params發送請求url給R shiny並獲取數據響應?

observe({ 
    #all url params come in via the 'url_search' variable. 
    query <- parseQueryString(session$clientData$url_search) 
    action <- query[['action']] 
    if (!is.null(action)) { 
     #handle all supported request here 
     if(action == 'blah') { 
     #... do somework here to create my dataframe 
     shiny:::httpResponse(status=200, content_type="text/html; charset=UTF-8", mydataframe) 
     } else { 
     #... ignore unrecognized request 
     }  
    } 
    }) 

這工作,但不能在預期的方式:

請求被正確處理,但這種情況發生的第一件事是整個應用程序閃亮呈現。 然後,稍後,我看到一個'POST'請求,以我的原始URL作爲referrer,並將所需的數據作爲JSON數據發佈,但我不知道它會發生什麼。

我需要什麼以便我可以將我的url(帶參數)發送到我的閃亮應用程序,然後讓它繞過其通常的交互模式,並立即返回原始json數據而無需呈現html?是因爲我通過瀏覽器發出請求嗎?我應該在R中以編程方式製作相同的網址請求嗎?

更新:我嘗試在我的網址上使用fromJSON('...')也無效。我得到:

Error in fromJSON(content, handler, default.size, depth, allowComments, : 
    invalid JSON input 

回答

1

我不相信你可以用Shiny來做到這一點。但是,有一些選項可以讓R像API一樣行爲並返回JSON響應。見:http://plumber.trestletech.com/

+0

哇......我剛纔沒聽說過水管工。謝謝你的提示!根據相關問題,我也得出了一個結論,即閃亮自身不會提供這種功能。我還沒有想出如何將水暖工摺疊到我現有的應用程序中,但我嘗試了演示,至少它立即返回一個JSON響應,所以我打算接受這個答案:-) – rstruck