18

他の RESTful API サービスから R でデータを使用することに関する記事をたくさん見てきましたが、その逆に関する記事を見つけるのに本当に苦労しました。R がクライアントではなくサーバーであることに興味があります。Node.js アプリで R サーバーの RESTful API を呼び出して、多季節予測などの特定の分析機能を活用できるようにしたいと考えています。誰にもアイデアはありますか?

4

2 に答える 2

21

を使用httpuvして基本サーバーを起動し、GET/POSTリクエストを処理できます。以下はそれ自体が「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)

リクエストとレスポンスを解析/フォーマット/etcするために、おそらく両方のビットを使用する必要があるため、そこにhttrRCurlパッケージがあります。

于 2015-04-09T11:43:42.983 に答える