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
>


Reply via email to