Versionary.Plug.VerifyHeader (Versionary v0.4.1) View Source
Use this plug to verify a version string in the header.
This plug will add a :version_verified private key to the conn. This value
will be true if the version has been verified. Otherwise, it will be
false.
Note that this plug will only flag the conn as having a valid or invalid
version. If you would like to halt the request and handle an invalid version
please see Versionary.Plug.EnsureVersion.
Options
:versions- a list of strings representing valid versions. If at least one of the provided versions is valid then the request is considered valid.:accepts- a list of strings or atoms representing versions registered as MIME types. If at least one of the registered versions is valid then the request is considered valid.:header- the header used to provide the requested version (Default:Accept)
Example
plug Versionary.Plug.VerifyHeader, versions: ["application/vnd.app.v1+json"]Multiple Versions
You may pass multiple version strings to the :versions option. If at least
one version matches the request will be considered valid.
plug Versionary.Plug.VerifyHeader, versions: ["application/vnd.app.v1+json",
"application/vnd.app.v2+json"]MIME Support
It's also possible to verify versions against configured MIME types. If multiple MIME types are passed and at least one matches the version will be considered valid.
config :mime, :types, %{
"application/vnd.app.v1+json" => [:v1]
}plug Versionary.Plug.VerifyHeader, accepts: [:v1]Please note that whenever you change media type configurations you must
recompile the mime library.
To force mime to recompile run mix deps.clean --build mime.
Identifying Versions
When a version has been verified this plug will add :version and
:raw_version private keys to the conn. These keys will contain version that
has been verified.
The :version key may contain either the string version provided by the
request or, if configured, the MIME extension. The :raw_version key will
always contain the string version provided by the request.