Skip to contents

The main purpose of this function is to enable examples using live resources in the documentation. Examples must not throw errors, according to CRAN policy. If you wrap a requesting method in gracefully, then any errors of type httr2_http will be caught and no error will be thrown.

Usage

gracefully(request_object, request_method)

Arguments

request_object

A httr2_request object describing a query to a Wikimedia Action API

request_method

The desired function for performing the request, typically one of those in get_query_results

Value

The output of request_method called on request_object, if the request was successful. Otherwise a httr2_response object with details of the failed request.

Examples

# This fails without throwing an error
req <- httr2::request(httr2::example_url()) |>
  httr2::req_url_path("/status/404")

resp <- gracefully(req, httr2::req_perform)
#> → The query you tried was unsuccessful. See the response below.
#> <httr2_response>
#> GET http://127.0.0.1:44311/status/404
#> Status: 404 Not Found
#> Content-Type: text/plain
#> Body: None

print(resp)
#> <httr2_response>
#> GET http://127.0.0.1:44311/status/404
#> Status: 404 Not Found
#> Content-Type: text/plain
#> Body: None

# This request succeeds
req <- httr2::request(httr2::example_url())

resp <- gracefully(req, httr2::req_perform)

print(resp)
#> <httr2_response>
#> GET http://127.0.0.1:44311/
#> Status: 200 OK
#> Content-Type: text/html
#> Body: In memory (357062 bytes)