This route is meant for being called prior to retrieving of the request body.
It inspects the Content-Length
header and determines if the request should
be allowed to proceed. The limit can be made variable by supplying a function
to the limit
argument returning a numeric. If the Content-Length
header
is missing and the limit is not Inf
the response will be set to
411 - Length Required
, If the header exists but exceeds the limit the
response will be set to 413 - Request Entity Too Large
. Otherwise the route
will return TRUE
and leave the response unchanged.
sizelimit_route(limit = 5 * 1024^2)
limit | Either a numeric or a function returning a numeric when called with the request |
---|
TRUE
if the request are allowed to proceed, or FALSE
if it should
be terminated
Other Route constructors: ressource_route
limit_route <- sizelimit_route() # Default 5Mb limit rook <- fiery::fake_request('http://www.example.com', 'post', headers = list(Content_Length = 30*1024^2)) req <- reqres::Request$new(rook) limit_route$dispatch(req)#> [1] FALSEreq$respond()#> A HTTP response #> =============== #> Status: 413 - Payload Too Large #> Content type: text/plain #> #> In response to: http://www.example.com:80/