URI Templates are similar to a macro language with a fixed set of macro
definitions: the expression type determines the expansion process.
The default expression type is simple string expansion (Level 1), wherein a
single named variable is replaced by its value as a string after
pct-encoding any characters not in the set of unreserved URI characters
(Section 1.5).
Level 2 templates add the plus ("+") operator, for expansion of values that
are allowed to include reserved URI characters
(Section 1.5),
and the crosshatch ("#") operator for expansion of fragment identifiers.
Level 3 templates allow multiple variables per expression, each
separated by a comma, and add more complex operators for dot-prefixed
labels, slash-prefixed path segments, semicolon-prefixed path
parameters, and the form-style construction of a query syntax
consisting of name=value pairs that are separated by an ampersand
character.
URI Templates are similar to a macro language with a fixed set of macro definitions: the expression type determines the expansion process.
The default expression type is simple string expansion (Level 1), wherein a single named variable is replaced by its value as a string after pct-encoding any characters not in the set of unreserved URI characters (Section 1.5).
Level 2 templates add the plus ("+") operator, for expansion of values that are allowed to include reserved URI characters (Section 1.5), and the crosshatch ("#") operator for expansion of fragment identifiers.
Level 3 templates allow multiple variables per expression, each separated by a comma, and add more complex operators for dot-prefixed labels, slash-prefixed path segments, semicolon-prefixed path parameters, and the form-style construction of a query syntax consisting of name=value pairs that are separated by an ampersand character.