- From: Robert Brewer <fumanchu@aminus.org>
- Date: Thu, 6 Nov 2008 14:02:09 -0800
- To: <uri@w3.org>
Roy Fielding wrote:
> Something like
>
> var = "value";
> undef = null;
> empty = "";
> list = [ "val1", "val2", "val3" ];
> keys = [ "key1", "val1", "key2", "val2", "key3", "val3" ];
> path = "/foo/bar"
> x = "1024";
> y = "768";
>
> {var} value
> {var=default} value
> {undef=default} default
> {var:3} val
> {x,y} 1024,768
> {?x,y} ?x=1024&y=768
> {?x,y,empty} ?x=1024&y=768&empty=
> {?x,y,undef} ?x=1024&y=768
> {;x,y} ;x=1024;y=768
> {;x,y,empty} ;x=1024;y=768;empty
> {;x,y,undef} ;x=1024;y=768
> {/list,x} /val1/val2/val3/1024
> {+path}/here /foo/bar/here
> {+path,x}/here /foo/bar,1024/here
> {+path}{x}/here /foo/bar1024/here
> {+empty}/here /here
So we have constructions for empty variables and undefined variables
producing valid URI's. What I have yet to see in either proposal (but is
in e.g. WADL) is a way to specify that a given expansion variable MUST
be defined, else raise an error because no valid URI can be constructed
if it is missing. For example, if I have the desired target URI
"/users/1234/first_name", I can't write "/users/{user_id}/first_name"
(using Joe's URI Template draft-03) because that will allow
"/users//first_name" if user_id is undefined. I don't think I can use
the above (which otherwise looks quite nice) for the same reasons.
Perhaps a trailing "!" could be used to require certain variables, e.g.
"{?x,y,undef!}"
Thoughts? Am I missing some glaring interop principle by wanting this?
Robert Brewer
fumanchu@aminus.org
Received on Friday, 7 November 2008 08:23:41 UTC