Request {RestRserve} | R Documentation |
Creates Request object
Description
Called internally for handling incoming requests from Rserve side. Also useful for testing.
Public fields
path
Request path.
method
Request HTTP method.
headers
Request headers.
cookies
Request cookies.
context
Environment to store any data. Can be used in middlewares.
content_type
Request body content type.
body
Request body.
parameters_query
Request query parameters.
parameters_body
Request body parameters.
parameters_path
List of parameters extracted from templated path after routing. For example if we have some handler listening at
/job/{job_id}
and we are receiving request at/job/1
thenparameters_path
will belist(job_id = "1")
.
It is important to understand thatparameters_path
will be available (not empty) only after request will reach handler.
This effectively means thatparameters_path
can be used inside handler and response middleware (but not request middleware!).files
Structure which contains positions and lengths of files for the multipart body.
decode
Function to decode body for the specific content type.
Active bindings
id
Automatically generated UUID for each request. Read only.
date
Request
Date
header converted toPOSIXct
.accept
Splitted
Accept
request header.accept_json
Request accepts JSON response.
accept_xml
Request accepts XML response.
Methods
Public methods
Method new()
Creates Request object
Usage
Request$new( path = "/", method = c("GET", "HEAD", "POST", "PUT", "DELETE", "CONNECT", "OPTIONS", "TRACE", "PATCH"), parameters_query = list(), parameters_body = list(), headers = list(), body = NULL, cookies = list(), content_type = NULL, decode = NULL, ... )
Arguments
path
Character with requested path. Always starts with
/
.method
Request HTTP method.
parameters_query
A named list with URL decoded query parameters.
parameters_body
A named list with URL decoded body parameters. This field is helpful when request is a urlencoded form or a multipart form.
headers
Request HTTP headers represented as named list.
body
Request body. Can be anything and in conjunction with
content_type
defines how HTTP body will be represented.cookies
Cookies represented as named list. Note that cookies should be provided explicitly - they won't be derived from
headers
.content_type
HTTP content type. Note that
content_type
should be provided explicitly - it won't be derived fromheaders
.decode
Function to decode body for the specific content type.
...
Not used at this moment.
Method set_id()
Set request id.
Usage
Request$set_id(id = uuid::UUIDgenerate(TRUE))
Arguments
id
Request id.
Method reset()
Resets request object. This is not useful for end user, but useful for RestRserve internals - resetting R6 class is much faster then initialize it.
Usage
Request$reset()
Method get_header()
Get HTTP response header value. If requested header is empty returns default
.
Usage
Request$get_header(name, default = NULL)
Arguments
name
Header field name.
default
Default value if header does not exists.
Returns
Header field values (character string).
Method get_param_query()
Get request query parameter by name.
Usage
Request$get_param_query(name)
Arguments
name
Query parameter name.
Returns
Query parameter value (character string).
Method get_param_body()
Get request body parameter by name.
Usage
Request$get_param_body(name)
Arguments
name
Body field name.
Returns
Body field value.
Method get_param_path()
Get templated path parameter by name.
Usage
Request$get_param_path(name)
Arguments
name
Path parameter name.
Returns
Path parameter value.
Method get_file()
Extract specific file from multipart body.
Usage
Request$get_file(name)
Arguments
name
Body file name.
Returns
Raw vector with filname
and content-type
attributes.
Method print()
Print method.
Usage
Request$print()
Method clone()
The objects of this class are cloneable with this method.
Usage
Request$clone(deep = FALSE)
Arguments
deep
Whether to make a deep clone.
See Also
Examples
# init simply request
rq = Request$new(
path = "/",
parameters_query = list(
"param1" = "value1",
"param2" = "value2"
),
headers = list(
"Content-encoding" = "identity",
"Custom-field" = "value"
),
cookies = list(
"sessionId" = "1"
)
)
# get request UUID
rq$id
# get content accept
rq$accept
# get request content type
rq$content_type
# get header by name (lower case)
rq$get_header("custom-field")
# get query param by name
rq$get_param_query("param1")
# print request
rq