Thierry,
Actually, I think setRedirectRef() (which in HTTP is expressed as a
Location response header) *is* appropriate when the Response Status
is SUCCESS_CREATED (HTTP: 201 Created). It is used to indicate to
the client the URI of the newly created Resource.
That's the current state, and it makes sense, but I think it may be
causing some confusion, because even though in HTTP both
SUCCESS_CREATED and the REDIRECTION_* statuses make use of the
Location header, it has different semantic meaning in the two
different cases; in the case of SUCCESS_CREATED it indicates the
Location (URI) of the newly created Resource, in the case of
REDIRECTION_*, it indicates the new Location (URI) of the original
resource.
So, we may want to consider adding a new method for use in the
SUCCESS_CREATED case: instead of setRedirectRef(), perhaps it could be
something like setNewResourceRef() - and the two should probably be
mutually exclusive somehow, or they would collide and/or overwrite
each other.
Avi
--
Avi Flax
Lead Technologist
arc90 | http://arc90.com
On 6/29/07, Thierry Boileau [EMAIL PROTECTED] wrote:
Hello Michael,
after reading the spec, SUCCESS_CREATED shows that the operation succeeds
and allows you also to provide a representation with some information about
the new resource, including a list of resource characteristics and
location(s) from which the user or user agent can choose the one most
appropriate. I don't think it can be meant as a redirection.
I think also that the redirecRef is only used when the status of the
response is a redirection status (3xx). The main explanation for this design
choice is that there are several redirection status, and no default one.
best regards,
Thierry Boileau
On 6/28/07, Michael Vogel [EMAIL PROTECTED] wrote:
Hello,
I'm new to using restlets and have been experimenting with simple test
pages to make sure i understand how to use it (and so that i can write
some examples to help my coworkers learn it).
I wrote a simple form submission test that works, except that the
redirection after returning SUCCESS_CREATED doesn't happen. I am under
the impression that setting
getResponse().setRedirectRef(some URL);
sets the location header and redirects the browser to whatever URL is
specified.
If i send the state REDIRECTION_SEE_OTHER, it redirects correctly.
From the HTTP spec, it appears that using REDIRECTION_SEE_OTHER to
redirect the client to a view of
the created item after a post is acceptable, so I'm going with that
for now, but I thought SUCCESS_CREATED was supposed to do that also.
Am I incorrect in expecting it to redirect on SUCCESS_CREATED?
thanks for your time,
Michael