ETag Plug v1.0.0 ETag.Plug View Source

A drop in plug to add support for shallow ETags.

Shallow means that it uses the whole response to generate the ETag and does not care about the specific content of each response. It is not context sensitive.

For a deep (speak context sensitive) generation of ETags you can take a look at Phoenix ETag.

Usage

You can simply use the plug without any configuration, it then defaults to the configuration as specified in the “Configuration” section.

plug ETag.Plug

You can also provide a number of options, see the “Configuration” section for details.

plug ETag.Plug,
  generator: MyCustomGenerator,
  methods: ["GET", "HEAD"],
  status_codes: [:ok, 201, :not_modified]

Configuration

generator

Expects a module implementing the ETag.Generator behaviour. The plug ships with a number of “default” generators:

Default

iex> Application.get_env(:etag_plug, :generator, ETag.Generator.SHA1)
ETag.Generator.SHA1

methods

Expects a list of strings, describing the HTTP methods for which ETags should be generated and evaluated.

Default

iex> Application.get_env(:etag_plug, :methods, ["GET"])
["GET"]

status_codes

Expects an enumerable of integers (or status atoms) which define the statuses for which ETags should be handled and generated.

Default

iex> Application.get_env(:etag_plug, :status_codes, [200])
[200]

Link to this section Summary

Link to this section Functions