Called internally for handling incoming requests from Rserve side. Also useful for testing.
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
then
parameters_path
will be list(job_id = "1")
.
It is important to understand that parameters_path
will be available
(not empty) only after request will reach handler.
This effectively means that parameters_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.
id
Automatically generated UUID for each request. Read only.
date
Request Date
header converted to POSIXct
.
accept
Splitted Accept
request header.
accept_json
Request accepts JSON response.
accept_xml
Request accepts XML response.
new()
Creates Request object
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 from headers
.
decode
Function to decode body for the specific content type.
...
Not used at this moment.
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.
# 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
#> [1] "af1c4bfc-fd26-11ee-98b2-0050569e8e3c"
# get content accept
rq$accept
#> [1] "*/*"
# get request content type
rq$content_type
#> NULL
# get header by name (lower case)
rq$get_header("custom-field")
#> [1] "value"
# get query param by name
rq$get_param_query("param1")
#> [1] "value1"
# print request
rq
#> <RestRserve Request>
#> method: GET
#> path: /
#> accept: */*
#> content-type:
#> <Query Parameters>
#> param1: value1
#> param2: value2
#> <Headers>
#> content-encoding: identity
#> custom-field: value
#> <Cookies>
#> sessionid: 1