Modify the basic request for an API by adding a path and any other path-specific properties.
Usage
req_modify(
req,
...,
path = NULL,
query = NULL,
body = NULL,
mime_type = NULL,
method = NULL,
call = rlang::caller_env()
)
Arguments
- req
(
httr2_request
) Ahttr2::request()
object.- ...
These dots are for future extensions and must be empty.
- path
(
character
orlist
) The route to an API endpoint. Optionally, a list or character vector with the path as one or more unnamed arguments (which will be concatenated with "/") plus named arguments toglue::glue()
into the path.- query
(
character
orlist
) An optional list or character vector of parameters to pass in the query portion of the request. Can also include a.multi
argument to pass tohttr2::req_url_query()
to control how elements containing multiple values are handled.- body
(multiple types) An object to use as the body of the request. If any component of the body is a path, pass it through
fs::path()
or otherwise give it the class "fs_path" to indicate that it is a path.- mime_type
(
length-1 character
) The mime type of any files present in the body. Some APIs allow you to leave this as NULL for them to guess.- method
(
length-1 character
, optional) If the method is something other thanGET
orPOST
, supply it. Case is ignored.- call
(
environment
) The environment from which a function was called, e.g.rlang::caller_env()
(the default). The environment will be mentioned in error messages as the source of the error. This argument is particularly useful for functions that are intended to be called as utilities inside other functions.
Value
A httr2::request()
object with additional class nectar_request
.
See also
Other opinionated request functions:
req_init()
,
req_pagination_policy()
,
req_prepare()
,
req_tidy_policy()
Examples
req_base <- req_init("https://example.com")
req_modify(req_base, path = c("specific/{path}", path = "endpoint"))
#> <nectar_request/httr2_request>
#> GET https://example.com/specific/endpoint
#> Body: empty
#> Options:
#> • useragent: "httr2/1.1.0 r-curl/6.2.0 libcurl/8.5.0 nectar/0.0.0.9005
#> (https://nectar.api2r.org)"
req_modify(req_base, query = c("param1" = "value1", "param2" = "value2"))
#> <nectar_request/httr2_request>
#> GET https://example.com/?param1=value1¶m2=value2
#> Body: empty
#> Options:
#> • useragent: "httr2/1.1.0 r-curl/6.2.0 libcurl/8.5.0 nectar/0.0.0.9005
#> (https://nectar.api2r.org)"