In order to improve performance for HTTP API clients, httpcache
provides simple tools for caching and invalidating cache. It includes the
HTTP verb functions GET
, PUT
, PATCH
, POST
, and DELETE
, which are drop-in
replacements for those in the httr package.
These functions are cache-aware and provide default settings
for cache invalidation suitable for RESTful APIs; the package also
enables custom cache-management strategies. Finally, httpcache
includes
a basic logging framework to facilitate the measurement of HTTP request
time and cache performance.
httpcache
can be installed from CRAN with
install.packages("httpcache")
The pre-release version of the package can be pulled from GitHub using the remotes package:
# install.packages("remotes")
remotes::install_github("nealrichardson/httpcache")
Working with httpcache
is as simple as loading the package in your interactive session or script instead of httr
, or, in package development, importing the HTTP verb functions from httpcache
. GET()
responses are added to the local query cache; PUT()
, PATCH()
, POST()
, and DELETE()
requests trigger cache invalidation on the associated resources. You can override that default cache invalidation, and you can command the invalidation explicitly, with the invalidation functions dropCache()
, dropPattern()
, and dropOnly()
. clearCache()
wipes the cache completely.
See vignette("httpcache")
for examples of the HTTP cache in practice.
The repository includes a Makefile to facilitate some common tasks.
$ make test
. Requires the httptest package. You can also specify a specific test file or files to run by adding a "file=" argument, like $ make test file=logging
. test_package
will do a regular-expression pattern match within the file names. See its documentation in the testthat package.
$ make doc
. Requires the roxygen2 package.