plug_rest v0.5.0 PlugRest.Conn
Helper functions for parsing Plug connection request headers
Summary
Functions
Parses request date header as Erlang date/time tuples
Parses an entity tag header into a list of etags
Parses media range header into a structure that can be sorted by quality
Parses media-type header as a {type, subtype, params} tuple
Parses other accept headers into types that can be sorted by quality
Reads the dynamic segment values from a rest resource path
Types
conn :: %Plug.Conn{adapter: term, assigns: term, before_send: term, body_params: term, cookies: term, halted: term, host: term, method: term, owner: term, params: term, path_info: term, peer: term, port: term, private: term, query_params: term, query_string: term, remote_ip: term, req_cookies: term, req_headers: term, request_path: term, resp_body: term, resp_cookies: term, resp_headers: term, scheme: term, script_name: term, secret_key_base: term, state: term, status: term}
header_value :: {String.t, map}
media_type :: {type, subtype, params}
params :: any
priority_type :: {media_type, float, map}
quality_type :: {String.t, float}
Functions
Specs
parse_accept_header([]) :: []
parse_accept_header([String.t, ...]) :: [media_type]
Parses request date header as Erlang date/time tuples
Possible headers are:
- if-modified-since
- if-unmodified-since
Examples
iex > PlugRest.Conn.parse_date_header(conn, "if-modified-since")
{{2016, 7, 17}, {19, 54, 31}}
Parses an entity tag header into a list of etags
Possible headers are:
- if-match
- if-none-match
Examples
iex > PlugRest.Conn.parse_entity_tag_header(conn, "if-none-match")
[{:strong, "xyzzy"}]
Specs
parse_media_range_header(conn, header) :: [priority_type]
Parses media range header into a structure that can be sorted by quality
Possible headers are:
- accept
Examples
iex > PlugRest.Conn.parse_media_range_header(conn, "accept")
[{{"text", "html", %{}}, 1.0, %{}}]
Specs
parse_media_type_header(conn, String.t) :: media_type
Parses media-type header as a {type, subtype, params} tuple
Possible headers are:
- content-type
Examples
iex > PlugRest.Conn.parse_media_type_header(conn, "content-type")
{"application", "json", %{}}
Specs
parse_quality_header(conn, String.t) :: [quality_type]
Parses other accept headers into types that can be sorted by quality
Possible headers are:
- accept-language
- accept-charset
Examples
iex > PlugRest.Conn.parse_quality_header(conn, "accept-language")
[{"da", 1.0}, {"en-gb", 0.8}, {"en", 0.7}]