This module provides a small URI template parser. ql.io uses URI templates for specifying URIs of APIs. See docs for more examples.
Syntax Overview
Here is overview of the syntax.
-
Each template can have an arbitrary number of tokens enclosed in braces (
{
and}
). -
You can generate URIs from URI templates by calling the
format()
function with an object containing values, and optionally, default values. -
All tokens are optional and single valued by default.
-
You can mark that a token is required by prefixing the name of the token with
^
. When the value for a required token is missing, formatting will fail. -
You can also mark that a token is multi-valued by prefixing the name of the token with a
|
.
If the value of v2
is ['v2_1','v2_2']
, calling the format()
would result in
http://myserver/somepath?p2=v2_1,v2_2
Some APIs may not take more than a given number of values. In such cases, you can specify a maximum
integer before |
.
http://myserver/somepath?p1={^v1}&p2={5|v2}
If you supply more than 5 values, the format()
function will return Math.ceil(n/5)
URIs.