hrb*_*str 21
您可以使用httpuv启动基本服务器然后处理GET/ POSTrequests.以下不是"REST"本身,但它应该提供基本框架:
library(httpuv)
library(RCurl)
library(httr)
app <- list(call=function(req) {
query <- req$QUERY_STRING
qs <- httr:::parse_query(gsub("^\\?", "", query))
status <- 200L
headers <- list('Content-Type' = 'text/html')
if (!is.character(query) || identical(query, "")) {
body <- "\r\n<html><body></body></html>"
} else {
body <- sprintf("\r\n<html><body>a=%s</body></html>", qs$a)
}
ret <- list(status=status,
headers=headers,
body=body)
return(ret)
})
message("Starting server...")
server <- startServer("127.0.0.1", 8000, app=app)
on.exit(stopServer(server))
while(TRUE) {
service()
Sys.sleep(0.001)
}
stopServer(server)
Run Code Online (Sandbox Code Playgroud)
我有httr和RCurl那里的包,因为你可能最终需要使用两者中的一些来解析/格式化/ etc请求和响应.
node-rio提供了一种与node.js的rserve(允许使用R函数的TCP/IP服务器)通信的方法.
以下是使用示例(来自文档):
var rio = require('rio');
rio.evaluate("as.character('Hello World')");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5380 次 |
| 最近记录: |