This function implements an opinionated framework for preparing an API
request. It is intended to be used inside an API client package. It serves as
a wrapper around the req_
family of functions, such as httr2::request()
.
Usage
req_prepare(
base_url,
...,
path = NULL,
query = NULL,
body = NULL,
mime_type = NULL,
method = NULL,
user_agent = "nectar (https://nectar.api2r.org)"
)
Arguments
- base_url
The part of the url that is shared by all calls to the API. In some cases there may be a family of base URLs, from which you will need to choose one.
- ...
These dots are for future extensions and must be empty.
- path
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
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
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
A character scalar indicating the mime type of any files present in the body. Some APIs allow you to leave this as NULL for them to guess.
- method
If the method is something other than GET or POST, supply it. Case is ignored.
- user_agent
A string to identify where this request is coming from. It's polite to set the user agent to identify your package, such as "MyPackage (https://mypackage.com)".
Value
A httr2::request()
object.