WebResult is the class of the object that will be returned from the run function of a FastRWeb script back to the browser.

Using a separate class allows automatic conversion of other objects into the necessary representation - all that is needed is a as.WebResult method for that particular object.

WebResult function can be used to create such objects directly.

as.WebResult coerces an object into a WebResult, it is a generic. This allows methods to be defined for as.WebResult which act as convertors transforming R objects into web results.

WebResult(cmd = "html", payload = "", content.type = "text/html; charset=utf-8",
          headers = character(0))
as.WebResult(x, ...)

Arguments

cmd

string, command passed back to the FastRWeb interface. Currently supported commands are "html", "file", "tmpfile" and "raw". See details below.

payload

string, the body (contents) that will be sent back or file name, depending on the command

content.type

MIME content type specification as it will be returned to the browser

headers

string vector, optional additional headers to be sent to the browser. Must not contain CR or LF!

x

object to convert into WebResult

...

additional arguments passed to the method

Details

There are four ways the results can be passed from R to the client (browser):

  • "html" is the default mode and it simply sends the result contained in payload to the browser as the body of the HTTP response.

  • "file" sends the content of the file with the name specified in payload from the web subdirectory of the FastRWeb project root as the body of the HTTP response.

  • "tmpfile" sends the content of the file with the name specified in payload from the tmp subdirectory of the FastRWeb project root as the body of the HTTP response and removes the file once it was delivered.

  • "raw" does not generate any HTTP headers but assumes that payload defines the entire HTTP response including headers. The use of this command is discouraged in favor of "html" with headers, since the payload must be properly formatted, which can be difficult.

All modes except "raw" cause FastRWeb to generate HTTP headers based on the content and any custom headers that were added using add.header or the headers argument. Note that the latter two may NOT contain Content-length: and Content-type: entries as those are generated automatically based on the content and the content.type argument.

Value

Object of the class WebResult

Author

Simon Urbanek

See also