dev@glassfish.java.net

Re: REST API and slashes in resource names

From: Bruno Harbulot <Bruno.Harbulot_at_manchester.ac.uk>
Date: Tue, 01 Jun 2010 15:49:54 +0100

Hi,

On 01/06/10 11:47, Andreas Loew wrote:
> Hi Paul,
>
> Paul Sandoz schrieb:
>
>>> Not quite: '{' and '}' are just "unsafe" characters,
>>
>> They are disallowed in the URI syntax:
>>
>> http://greenbytes.de/tech/webdav/rfc2396.html#rfc.section.2.4.3
>
> while I don't want to argue with you about the subtleties of the fact
> that curly brackets are *not* part of *neither* "reserved" *nor*
> "unreserved" characters, it seems to me that the following would be
> fully sanctioned by the spec:
>
> .../management/domain/resources/admin-object-resource/(jndi/foo)
>
> because "normal" brackets are "unreserved" characters: "Data characters
> that are allowed in a URI but do not have a reserved purpose are called
> unreserved."
>
> So how about wrapping resource values that contain "reserved" characters
> by a pair of (unreserved) "normal" brackets '(' and ')'?

I'm not sure whether you want to take more recent RFCs into
consideration, but in RFC 3986, which obsoletes RFC 2389, parentheses
are reserved characters:

http://tools.ietf.org/html/rfc3986#section-2.2

Section 2.4 is probably relevant to this discussion too (especially its
last sentence).

As a side note, just in case you're using them,
java.net.URLEncoder/Decoder "[contain] static methods for converting a
String to the application/x-www-form-urlencoded MIME format" (see
Javadoc), which may not be intuitive w.r.t. the class name: it's more
relevant to the query part, but is likely not to produce the expected
result if the full URI is passed (space is encoded as '+' as far as I
remember).


Best wishes,

Bruno.