Title: | HTTP Error Helpers |
Description: | HTTP error helpers. Methods included for general purpose HTTP error handling, as well as individual methods for every HTTP status code, both via status code numbers as well as their descriptive names. Supports ability to adjust behavior to stop, message or warning. Includes ability to use custom whisker template to have any configuration of status code, short description, and verbose message. Currently supports integration with 'crul', 'curl', and 'httr'. |
Version: | 0.5.2 |
License: | MIT + file LICENSE |
URL: | https://sckott.github.io/fauxpas/, https://github.com/sckott/fauxpas |
BugReports: | https://github.com/sckott/fauxpas/issues |
VignetteBuilder: | knitr |
Encoding: | UTF-8 |
Language: | en-US |
Imports: | R6 (≥ 2.1.2), httpcode (≥ 0.3.0), whisker |
Suggests: | crul (≥ 0.5.0), curl (≥ 2.2), httr (≥ 1.2.0), testthat, knitr, rmarkdown |
RoxygenNote: | 7.2.3 |
X-schema.org-applicationCategory: | Web |
X-schema.org-keywords: | http, https, API, web-services, curl, errors, error |
NeedsCompilation: | no |
Packaged: | 2023-05-02 21:33:03 UTC; sckott |
Author: | Scott Chamberlain |
Maintainer: | Scott Chamberlain <myrmecocystus@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2023-05-03 08:10:09 UTC |
fauxpas
Description
HTTP Error Helpers
Author(s)
Scott Chamberlain myrmecocystus@gmail.com
Error class
Description
Error class
Arguments
behavior |
Behavior of the error. default: auto. See Details |
message_template |
A message template. optional. use whisker
templating. names to use are: reason and status. use in template
like |
call. |
(logical) indicating if the call should become part
of the error message. Default: |
message_template_verbose |
A verbose message template. optional.
use whisker templating. names to use are: reason, status, message.
use in template like |
muffle |
(logical) whether to not respond when status codes
in 1xx-3xx series. Default: |
Details
Methods
-
do(response, mssg)
Execute condition, whether it be message, warning, or error.
response: is any response from crul, curl, or httr Execute condition, whether it be message, warning, error, or your own custom function. This method uses
message_template_verbose
, and uses it's default value.mssg: character string message to include in call. ignored if template does not have a
message
entry
-
set_behavior(behavior)
Set behavior, same as setting behavior on initializing with
$new()
behavior parameter options
stop - use
stop
warning - use
warning
message - use
message
auto - toggle between
stop
andmessage
depending on the HTTP status code series. Defaults will be:1xx:
message
2xx:
message
3xx:
message
4xx:
stop
5xx:
stop
Of course, you can always override the defaults.
See Also
Examples
Error$new()
# reset behavior
(z <- Error$new())
z$set_behavior("warning")
z
Individual error classes
Description
These error classes are for each HTTP error, and inherit from
the Error
class in this package.
Details
In addition to what's available in Error
,
these classes have a single variable mssg
that is the very
verbose complete message describing the HTTP condition in detail.
You can include that message in your condition by using do_verbose
(see below)
Methods
In addition to the methods documented in Error
, these methods
also have:
-
do_verbose(response, template)
Execute condition, whether it be message, warning, or error.
response: is any response from crul, curl, or httr Execute condition, whether it be message, warning, error, or your own custom function. This method uses
message_template_verbose
, and uses it's default value.template: a template to use for the verbose message, see
Error
for details
See Also
Examples
HTTPRequestURITooLong$new(
message_template = "{{reason}} ............ {{status}}",
message_template_verbose = "{{reason}} .>.>.>.>.>.> {{status}}\n {{message}}"
)
Find error classes
Description
Find error classes
Usage
find_error_class(status_code)
Arguments
status_code |
(numeric,integer) A status code |
Value
an object of class R6ClassGenerator
. call $new()
to initialize a new instance
See Also
Examples
find_error_class(414)
find_error_class(418)
find_error_class(505)
# initialize the class
find_error_class(418)$new()
# not found
## Not run: find_error_class(999)
higher level error wrappers
Description
higher level error wrappers
Usage
http100(response, behavior = "auto", message_template, muffle = FALSE)
http101(response, behavior = "auto", message_template, muffle = FALSE)
http102(response, behavior = "auto", message_template, muffle = FALSE)
http200(response, behavior = "auto", message_template, muffle = FALSE)
http201(response, behavior = "auto", message_template, muffle = FALSE)
http202(response, behavior = "auto", message_template, muffle = FALSE)
http203(response, behavior = "auto", message_template, muffle = FALSE)
http204(response, behavior = "auto", message_template, muffle = FALSE)
http205(response, behavior = "auto", message_template, muffle = FALSE)
http206(response, behavior = "auto", message_template, muffle = FALSE)
http207(response, behavior = "auto", message_template, muffle = FALSE)
http208(response, behavior = "auto", message_template, muffle = FALSE)
http226(response, behavior = "auto", message_template, muffle = FALSE)
http300(response, behavior = "auto", message_template, muffle = FALSE)
http301(response, behavior = "auto", message_template, muffle = FALSE)
http302(response, behavior = "auto", message_template, muffle = FALSE)
http303(response, behavior = "auto", message_template, muffle = FALSE)
http304(response, behavior = "auto", message_template, muffle = FALSE)
http305(response, behavior = "auto", message_template, muffle = FALSE)
http306(response, behavior = "auto", message_template, muffle = FALSE)
http307(response, behavior = "auto", message_template, muffle = FALSE)
http308(response, behavior = "auto", message_template, muffle = FALSE)
http400(response, behavior = "auto", message_template, muffle = FALSE)
http401(response, behavior = "auto", message_template, muffle = FALSE)
http402(response, behavior = "auto", message_template, muffle = FALSE)
http403(response, behavior = "auto", message_template, muffle = FALSE)
http404(response, behavior = "auto", message_template, muffle = FALSE)
http405(response, behavior = "auto", message_template, muffle = FALSE)
http406(response, behavior = "auto", message_template, muffle = FALSE)
http407(response, behavior = "auto", message_template, muffle = FALSE)
http408(response, behavior = "auto", message_template, muffle = FALSE)
http409(response, behavior = "auto", message_template, muffle = FALSE)
http410(response, behavior = "auto", message_template, muffle = FALSE)
http411(response, behavior = "auto", message_template, muffle = FALSE)
http412(response, behavior = "auto", message_template, muffle = FALSE)
http413(response, behavior = "auto", message_template, muffle = FALSE)
http414(response, behavior = "auto", message_template, muffle = FALSE)
http415(response, behavior = "auto", message_template, muffle = FALSE)
http416(response, behavior = "auto", message_template, muffle = FALSE)
http417(response, behavior = "auto", message_template, muffle = FALSE)
http418(response, behavior = "auto", message_template, muffle = FALSE)
http419(response, behavior = "auto", message_template, muffle = FALSE)
http420(response, behavior = "auto", message_template, muffle = FALSE)
http422(response, behavior = "auto", message_template, muffle = FALSE)
http423(response, behavior = "auto", message_template, muffle = FALSE)
http424(response, behavior = "auto", message_template, muffle = FALSE)
http425(response, behavior = "auto", message_template, muffle = FALSE)
http426(response, behavior = "auto", message_template, muffle = FALSE)
http428(response, behavior = "auto", message_template, muffle = FALSE)
http429(response, behavior = "auto", message_template, muffle = FALSE)
http431(response, behavior = "auto", message_template, muffle = FALSE)
http440(response, behavior = "auto", message_template, muffle = FALSE)
http444(response, behavior = "auto", message_template, muffle = FALSE)
http449(response, behavior = "auto", message_template, muffle = FALSE)
http450(response, behavior = "auto", message_template, muffle = FALSE)
http451(response, behavior = "auto", message_template, muffle = FALSE)
http494(response, behavior = "auto", message_template, muffle = FALSE)
http495(response, behavior = "auto", message_template, muffle = FALSE)
http496(response, behavior = "auto", message_template, muffle = FALSE)
http497(response, behavior = "auto", message_template, muffle = FALSE)
http498(response, behavior = "auto", message_template, muffle = FALSE)
http499(response, behavior = "auto", message_template, muffle = FALSE)
http500(response, behavior = "auto", message_template, muffle = FALSE)
http501(response, behavior = "auto", message_template, muffle = FALSE)
http502(response, behavior = "auto", message_template, muffle = FALSE)
http503(response, behavior = "auto", message_template, muffle = FALSE)
http504(response, behavior = "auto", message_template, muffle = FALSE)
http505(response, behavior = "auto", message_template, muffle = FALSE)
http506(response, behavior = "auto", message_template, muffle = FALSE)
http507(response, behavior = "auto", message_template, muffle = FALSE)
http508(response, behavior = "auto", message_template, muffle = FALSE)
http509(response, behavior = "auto", message_template, muffle = FALSE)
http510(response, behavior = "auto", message_template, muffle = FALSE)
http511(response, behavior = "auto", message_template, muffle = FALSE)
http598(response, behavior = "auto", message_template, muffle = FALSE)
http599(response, behavior = "auto", message_template, muffle = FALSE)
http(response, behavior = "auto", message_template, muffle = FALSE)
Arguments
response |
The result of a call via crul, curl, or httr |
behavior |
Behavior of the error. default: auto. See Details |
message_template |
A message template. optional. use whisker
templating. names to use are: reason and status. use in template
like |
muffle |
(logical) whether to not respond when status codes
in 1xx-3xx series. Default: |
behavior parameter options
stop - use
stop
warning - use
warning
message - use
message
auto - toggle between
stop
andmessage
depending on the HTTP status code series. Defaults will be:1xx:
message
2xx:
message
3xx:
message
4xx:
stop
5xx:
stop
Of course, you can always override the defaults.
using package curl
curl reponses are simple lists, so we have little to go on to make sure it's a response from the curl package. We check for list names internally but of course you could pass in a list with the right named elements, while the values are complete nonsense, in which case we'll probably fail badly. There's not much we can do.
Note
These http*
methods only use $do
and not
$do_verbose
.
See Also
Examples
res <- list(url="https://a.com", status_code=200, type="application/xml",
headers=charToRaw("a"), modified=NA, times=5, content=charToRaw('b'))
http(res, behavior = "message")