- From: Roy T. Fielding <fielding@gbiv.com>
- Date: Thu, 25 Feb 2010 15:10:07 -0800
- To: mjb@asplake.co.uk
- Cc: Mark Nottingham <mnot@mnot.net>, Joe Gregorio <joe@bitworking.org>, URI <uri@w3.org>
On Aug 23, 2009, at 3:23 AM, Mike Burrows wrote:
> Thanks again. Couple of comments now that I've had a change to build the doc:
>
> 1) It would be very useful to be able to specify that a variable is
> mandatory, to prevent invalid expansions such as
> http://users/{userid}/settings
> to
> http://users//settings
> (not to mention others that look less clearly invalid but are still
> not the intention of the template)
>
> This will give much more reliable feedback to the client than a
> server-side validation ever could. This can be achieved without
> changing the syntax simply by specifying that an error is raised by a
> Simple or Reserved substitution, if the variable has not been assigned
> and no default value is specified.
>
> Nothing is lost with my proposal - this template:
> http://users/{userid=}
> will expand in the unassigned case to be
> http://users/
>
> Others may have good reasons to propose additional syntax though.
I don't like the idea of adding conditions that cause errors
on the client. Ideally, a valid template should always result
in a valid URI even if the client has no clue. The server is
supposed to have provided the appropriate values and thus should
not find itself with a URI that it does not expect to handle.
> 2) Can (or should) the new syntax have a neat way (or any way at all!)
> to support things like optional file extensions? Like them or loathe
> them they're important out there in the wild - try modeling a
> multi-format Rails application efficiently without them.
>
> In the old syntax {-prefix|.|format} did the trick nicely; something
> like {.format} might be a good fit now (it's in the spirit of the new
> / operator) but perhaps it could be generalised. Or did I miss a
> trick in the new syntax?
I think that makes sense -- I'll add it to the list.
....Roy
Received on Thursday, 25 February 2010 23:10:35 UTC