- Notifications
You must be signed in to change notification settings - Fork3
A simple to use shallow ETag plug
License
alexocode/etag_plug
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This plug generates shallowETags.
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 atPhoenix ETag.
NOTE:While this plug may seem stale, it's just stable.There is nothing else to do, it "just works".As such don't be afraid to use it in production. 🙂
The plug can be installed by addingetag_plug
to your list of dependencies inmix.exs
:
defdepsdo[{:etag_plug,"~> 1.0"}]end
Documentation can be found at:https://hexdocs.pm/etag_plug
You can simply use the plug without any configuration, it then defaults to the configuration as specified in the "Configuration" section.
plugETag.Plug
You can also provide a number of options, see the "Configuration" section for details.
plugETag.Plug,generator:MyCustomGenerator,methods:["GET","HEAD"],status_codes:[:ok,201,:not_modified]
A full configuration equal to the defaults could look like this:
config:etag_plug,generator:ETag.Generator.SHA1,methods:["GET"],status_codes:[200]
Each of these options is explained in detail below.
Expects a module implementing theETag.Generator
behaviour. The plug ships with a number of "default" generators:
ETag.Generator.MD5
ETag.Generator.SHA1
ETag.Generator.SHA512
Default:Application.get_env(:etag_plug, :generator, ETag.Generator.SHA1)
Expects a list of strings, describing the HTTP methods for which ETags should be generated and evaluated.
Default:Application.get_env(:etag_plug, :methods, ["GET"])
Expects an enumerable of integers (or status atoms) which define the statuses for which ETags should be handled and generated.
Default:Application.get_env(:etag_plug, :status_codes, [200])
About
A simple to use shallow ETag plug