Ale*_* A. 7 rest r json-rpc shiny shiny-server
我正在尝试使用shiny-server作为进程服务器:接收URL请求,处理R子例程并输出JSON作为结果.但我无法在JSON中直接将输出打印到浏览器.
是否可以这种方式使用闪亮的服务器?
PD:我知道这不是闪亮服务器的典型用法
非常感谢!
今天我发现这个包裹R函数RPC/REST-ish的其他包:
https://github.com/trestletech/plumber
通过注释R函数,如下所示:
#' @get /mean
normalMean <- function(samples=10){
data <- rnorm(samples)
mean(data)
}
#' @post /sum
addTwo <- function(a, b){
as.numeric(a) + as.numeric(b)
}
Run Code Online (Sandbox Code Playgroud)
您可以将其公开为web api:
> library(plumber)
> r <- plumb("myfile.R") # Where 'myfile.R' is the location of the file shown above
> r$run(port=8000)
Run Code Online (Sandbox Code Playgroud)
听起来您正在尝试使用闪亮的服务器构建REST或JSON-RPC Web服务.目前这不可能(使用Shiny Server v1.2).
闪亮的服务器呈现文本/ html模板(shinyUI)页面并使用WebSocket回调来填充内容.@ScottChamberlain的答案将在Web浏览器的HTML正文中呈现JSON.这不适用于程序化Web请求.
我发现rApache,Rook和RJSONIO是JSON Web服务的强大且高性能的解决方案.您需要熟悉Apache Web服务器的配置,并根据您的平台构建Apache模块.
rApache是一个将R嵌入Apache Web服务器的模块,允许您托管Rook,brew和其他R框架.
Rook定义了R应用程序和Web服务器之间的接口.这使得使用正确的内容类型轻松交付JSON有效负载.
其他选择包括: