Skip to contents

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
)

Arguments

req

(httr2_request) A httr2::request() object.

...

These dots are for future extensions and must be empty.

path

(character or list) 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 to glue::glue() into the path.

query

(character or list) 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 to httr2::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 than GET or POST, supply it. Case is ignored.

Value

A httr2::request() object.

Examples

req_base <- req_init("https://example.com")
req_modify(req_base, path = c("specific/{path}", path = "endpoint"))
#> <httr2_request>
#> GET https://example.com/specific/endpoint
#> Body: empty
#> Options:
#>useragent: "httr2/1.1.0 r-curl/6.1.0 libcurl/8.5.0 nectar/0.0.0.9004
#> (https://nectar.api2r.org)"
req_modify(req_base, query = c("param1" = "value1", "param2" = "value2"))
#> <httr2_request>
#> GET https://example.com/?param1=value1&param2=value2
#> Body: empty
#> Options:
#>useragent: "httr2/1.1.0 r-curl/6.1.0 libcurl/8.5.0 nectar/0.0.0.9004
#> (https://nectar.api2r.org)"