Fwd: I-D Action:draft-gregorio-uritemplate-04.txt

[second attempt to send this]

I managed to submit a new draft, just before the deadline,
with the obsolete sections removed and the sections that
still need writing marked as TBD.

The current issues (that I am aware of) include:

1) error handling -- as Joe noted, we can improve consistency
by making every error in the template result in a semi-expanded
result string and error indicator, rather than nulling
the result string and returning immediately.  My preference is
to copy bad expressions to the result, continue processing, and
indicate an error occurred to the caller.  This allows the
calling application to use the result string to point out
where the processing failed.

2) reserved substitution -- this is currently allowed only
by the "+" operator.  A suggestion by Mike Burrows is that the
"+" operator be changed into a variable name prefix so that
it can be selectively applied to any variable in any expression.
In addition to the added power, I found that a prefix would
simplify the value expansion description (and algorithm).
However, I have not made that change yet in 04.  Would such
a change be compatible with XRD and other applications?

3) I introduced explode modifiers, with the named variable
version indicated by a trailing "+" on the name.  Perhaps that
would be better as a trailing "@" if we do (2) above.

4) James Manger suggested several changes to the syntax:

  a) remove the variable lists and instead have the processor
     maintain a memory of where it is in the URI generic syntax
     to know when to add the default ";" or "?" delimiters.
     Add a comma operator to support CSV expansions.

  b) change the default syntax to {var|default} instead of
     {var=default}, in order to allow ...

  c) define variable bindings within the template itself so
     that large schemas like OpenSearch can directly annotate
     every variable inside the template as opposed to annotating
     them by reference outside the template.  e.g.,

        find{?q=searchTerms}{?lang=language}

    I personally find (a) significantly uglier than the
    existing syntax;  (b) okay if people haven't implemented
    defaults yet; and, (c) a very slippery slope that, IMO, will
    result in the equivalent of WADL being embedded inside the
    template instead of remaining outside (where it can be safely
    ignored by RESTful applications).  YMMV.

I will be at the Anaheim IETF if anyone wants to discuss these
issues in person, but please send email to the list if you want
the discussion to result in changes to the next draft.

Cheers,

Roy T. Fielding                            <http://roy.gbiv.com/>
Chief Scientist, Day Software              <http://www.day.com/>

Begin forwarded message:

> From: Internet-Drafts@ietf.org
> Date: March 8, 2010 5:00:01 PM PST
> To: i-d-announce@ietf.org
> Subject: I-D Action:draft-gregorio-uritemplate-04.txt 
> Reply-To: internet-drafts@ietf.org
> 
> A New Internet-Draft is available from the on-line Internet-Drafts directories.
> 
> 	Title           : URI Template
> 	Author(s)       : J. Gregorio, et al.
> 	Filename        : draft-gregorio-uritemplate-04.txt
> 	Pages           : 25
> 	Date            : 2010-03-08
> 
> A URI Template is a compact sequence of characters for describing a
> range of Uniform Resource Identifiers through variable expansion.
> This specification defines the URI Template syntax and the process
> for expanding a URI Template into a URI, along with guidelines for
> the use of URI Templates on the Internet.
> 
> A URL for this Internet-Draft is:
> http://www.ietf.org/internet-drafts/draft-gregorio-uritemplate-04.txt

Received on Wednesday, 10 March 2010 09:23:35 UTC