Popularity
3.0
Declining
Activity
0.0
Declining
16
1
3

Monthly Downloads: 434
Programming language: Elixir
License: MIT License
Tags: HTTP    
Latest version: v0.2.0

etag_plug alternatives and similar packages

Based on the "HTTP" category

Do you think we are missing an alternative of etag_plug or a related project?

Add another 'HTTP' Package

README

ETagPlug

CircleCI Coverage Status Hex.pm License

This plug generates 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.

Installation

The plug can be installed by adding etag_plug to your list of dependencies in mix.exs:

def deps do
  [
    {:etag_plug, "~> 0.2.0"}
  ]
end

Documentation can be found at: https://hexdocs.pm/etag_plug

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

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.

generator

Expects a module implementing the ETag.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)

methods

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"])

status_codes

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])


*Note that all licence references and agreements mentioned in the etag_plug README section above are relevant to that project's source code only.