Ich bin mir nicht sicher, ob ich verstehe, wie dies mit nginx
zusammenhängt, da dies nur als Reverse-Proxy fungieren würde und somit keine Änderungen an der Rserve-Konfiguration erfordert.
Aber .http.request
sein muss einfach eine Funktion definiert als
.http.request <- function(url, query, body, headers, ...)
Sie tun können, was Sie wollen, und dann kehrt die folgenden (von rserve zitiert):
the result is expected to have one of the following forms:
a) character vector of length 1 => error (possibly from try),
will create 500 response
b) list(payload[, content-type[, headers[, status code]]])
payload: can be a character vector of length one or a
raw vector. if the character vector is named "file" then
the content of a file of that name is the payload
content-type: must be a character vector of length one
or NULL (if present, else default is "text/html")
headers: must be a character vector - the elements will
have CRLF appended and neither Content-type nor
Content-length may be used
status code: must be an integer if present (default is 200)
Nur Nutzlast ist obligatorisch, alles andere ist optional. Es ist eine gute Idee, Ihren Code in etwas wie tryCatch({ ... }, error=function(e) e$message)
zu verpacken, so dass Sie die Ausgabe im Falle eines Fehlers sehen.
Beachten Sie, dass dies ist das gleiche API wie durch den integrierten HTTP-Server in R.
PS verwendet: mit der stats-rosuda-devel Mailingliste für rserve-Fragen Bitte beachten Sie.