httpcache: Query Cache for HTTP Clients
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 devtools package:
# install.packages("devtools")
devtools::install_github("nealrichardson/httpcache", build_vignettes=TRUE)
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 until PUT
, PATCH
, POST
, or DELETE
requests trigger cache invalidation, or until you command the invalidation explicitly. 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.