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.
Installing
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")
::install_github("nealrichardson/httpcache") remotes
Getting started
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.
For developers
The repository includes a Makefile to facilitate some common tasks.
Running tests
$ 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.
Updating documentation
$ make doc
. Requires the roxygen2 package.