12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- = cowboy_req:match_qs(3)
- == Name
- cowboy_req:match_qs - Match the query string against constraints
- == Description
- [source,erlang]
- ----
- match_qs(Fields :: cowboy:fields(), Req :: cowboy_req:req())
- -> #{atom() => any()}
- ----
- Parse the query string and match specific values against
- constraints.
- Cowboy will only return the query string values specified
- in the fields list, and ignore all others. Fields can be
- either the key requested; the key along with a list of
- constraints; or the key, a list of constraints and a
- default value in case the key is missing.
- This function will crash if the key is missing and no
- default value is provided. This function will also crash
- if a constraint fails.
- The key must be provided as an atom. The key of the
- returned map will be that atom. The value may be converted
- through the use of constraints, making this function able
- to extract, validate and convert values all in one step.
- == Arguments
- Fields::
- Fields to retrieve from the query string.
- +
- See link:man:cowboy(3)[cowboy(3)] for a complete description.
- Req::
- The Req object.
- == Return value
- Desired values are returned as a map. The key is the atom
- that was given in the list of fields, and the value is the
- optionally converted value after applying constraints.
- The map contains the same keys that were given in the fields.
- An exception is triggered when the match fails.
- == Changelog
- * *2.0*: Function introduced.
- == Examples
- .Match fields
- [source,erlang]
- ----
- %% ID and Lang are binaries.
- #{id := ID, lang := Lang}
- = cowboy_req:match_qs([id, lang], Req).
- ----
- .Match fields and apply constraints
- [source,erlang]
- ----
- %% ID is an integer and Lang a non-empty binary.
- #{id := ID, lang := Lang}
- = cowboy_req:match_qs([{id, int}, {lang, nonempty}], Req).
- ----
- .Match fields with default values
- [source,erlang]
- ----
- #{lang := Lang}
- = cowboy_req:match_qs([{lang, [], <<"en-US">>}], Req).
- ----
- == See also
- link:man:cowboy_req(3)[cowboy_req(3)],
- link:man:cowboy_req:qs(3)[cowboy_req:qs(3)],
- link:man:cowboy_req:parse_qs(3)[cowboy_req:parse_qs(3)]
|