Search the web
Sign In
New User? Sign Up
rest-discuss · REST Discussion Mailing List
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Best of Y! Groups

   Check them out and nominate your group.

Messages

  Messages Help
Advanced
What location to return on 202 (asynchronous process) and what polli   Message List  
Reply Message #11265 of 14748 |
Re: [rest-discuss] What location to return on 202 (asynchronous process) and what polling result?

As Aristotle replied, Location header is unspecified for 202
(Accepted). Instead, provide a body such as the following:

<status>
<link href="http://example.org/stats?someid"/>
...
</status>

so that the client can check the status of the response. If the
process succeeded in creating a resource, only then provide a link to
the newly created resource, which you can do as part of the status
check response. That is, don't advertise /backups/version_x until the
resource has been created. Here is a possible flow:

POST /something ===> 202 Accepted + link to a status check URL with in
the response
GET /status_check_url => 200 OK + status response, when not completed
GET /status_check_url => 200 OK + status response, when completed, but
was not successful
GET /status_check_url => 300 See Other + Location: uri_to_resource,
when competed successfully

Subbu

On Sep 6, 2008, at 1:21 PM, bierstuebl wrote:

> Hi all,
>
> I'm new to this mailing list and to be honest: I've neve been on a
> mailing list before. So in case I'm doing things wrong, please be
> forgiving.
>
> However, here is my first question:
>
> I would like to use asynchronous REST by POSTing a request to e.g.
> /backups (for creating a new backup version), which will return me a
> 202 with a location in the header. What should this location look
> like?
> I think it should look like /backups/version_x and NOT be somewhere
> else like /queue/backups/version_x or the like.
> However, if a client starts polling now on /backups/version_x and the
> process hasn't finished yet, what should be returned? A 404 with a
> body until the process is finished an the real representation can be
> sent with 200?
>
> Using a new resource like /queue/backups/version I could return a 200
> with some status information in it. However, the client initially
> requested a representation of a backup, but when it starts polling on
> the new resource it receives another representation, the a status
> representeation. How could a client adjust to this situation without
> knowing in advance that the action would be asynchronous??
>
> Hmm, it's difficult to describe the problem. I hope it's
> understandable somehow.
>
> regards,
> Roland
>
>
> <!-- #ygrp-mkp{ border: 1px solid #d8d8d8; font-family: Arial;
> margin: 14px 0px; padding: 0px 14px; } #ygrp-mkp hr{ border: 1px
> solid #d8d8d8; } #ygrp-mkp #hd{ color: #628c2a; font-size: 85%; font-
> weight: bold; line-height: 122%; margin: 10px 0px; } #ygrp-mkp
> #ads{ margin-bottom: 10px; } #ygrp-mkp .ad{ padding: 0 0; } #ygrp-
> mkp .ad a{ color: #0000ff; text-decoration: none; } --> <!-- #ygrp-
> sponsor #ygrp-lc{ font-family: Arial; } #ygrp-sponsor #ygrp-lc
> #hd{ margin: 10px 0px; font-weight: bold; font-size: 78%; line-
> height: 122%; } #ygrp-sponsor #ygrp-lc .ad{ margin-bottom: 10px;
> padding: 0 0; } --> <!-- #ygrp-mlmsg {font-size:13px; font-family:
> arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}
> #ygrp-mlmsg table {font-size:inherit;font:100%;} #ygrp-mlmsg select,
> input, textarea {font:99% arial,helvetica,clean,sans-serif;} #ygrp-
> mlmsg pre, code {font:115% monospace;*font-size:100%;} #ygrp-mlmsg *
> {line-height:1.22em;} #ygrp-text{ font-family: Georgia; } #ygrp-
> text p{ margin: 0 0 1em 0; } #ygrp-tpmsgs{ font-family: Arial;
> clear: both; } #ygrp-vitnav{ padding-top: 10px; font-family:
> Verdana; font-size: 77%; margin: 0; } #ygrp-vitnav a{ padding: 0
> 1px; } #ygrp-actbar{ clear: both; margin: 25px 0; white-
> space:nowrap; color: #666; text-align: right; } #ygrp-
> actbar .left{ float: left; white-space:nowrap; } .bld{font-
> weight:bold;} #ygrp-grft{ font-family: Verdana; font-size: 77%;
> padding: 15px 0; } #ygrp-ft{ font-family: verdana; font-size: 77%;
> border-top: 1px solid #666; padding: 5px 0; } #ygrp-mlmsg
> #logo{ padding-bottom: 10px; } #ygrp-reco { margin-bottom: 20px;
> padding: 0px; } #ygrp-reco #reco-head { font-weight: bold; color:
> #ff7900; } #reco-grpname{ font-weight: bold; margin-top: 10px; }
> #reco-category{ font-size: 77%; } #reco-desc{ font-size: 77%; }
> #ygrp-vital{ background-color: #e0ecee; margin-bottom: 20px;
> padding: 2px 0 8px 8px; } #ygrp-vital #vithd{ font-size: 77%; font-
> family: Verdana; font-weight: bold; color: #333; text-transform:
> uppercase; } #ygrp-vital ul{ padding: 0; margin: 2px 0; } #ygrp-
> vital ul li{ list-style-type: none; clear: both; border: 1px solid
> #e0ecee; } #ygrp-vital ul li .ct{ font-weight: bold; color: #ff7900;
> float: right; width: 2em; text-align:right; padding-right: .5em; }
> #ygrp-vital ul li .cat{ font-weight: bold; } #ygrp-vital a{ text-
> decoration: none; } #ygrp-vital a:hover{ text-decoration:
> underline; } #ygrp-sponsor #hd{ color: #999; font-size: 77%; } #ygrp-
> sponsor #ov{ padding: 6px 13px; background-color: #e0ecee; margin-
> bottom: 20px; } #ygrp-sponsor #ov ul{ padding: 0 0 0 8px; margin:
> 0; } #ygrp-sponsor #ov li{ list-style-type: square; padding: 6px
> 0; font-size: 77%; } #ygrp-sponsor #ov li a{ text-decoration: none;
> font-size: 130%; } #ygrp-sponsor #nc{ background-color: #eee; margin-
> bottom: 20px; padding: 0 8px; } #ygrp-sponsor .ad{ padding: 8px 0; }
> #ygrp-sponsor .ad #hd1{ font-family: Arial; font-weight: bold;
> color: #628c2a; font-size: 100%; line-height: 122%; } #ygrp-
> sponsor .ad a{ text-decoration: none; } #ygrp-sponsor .ad
> a:hover{ text-decoration: underline; } #ygrp-sponsor .ad p{ margin:
> 0; } o{font-size: 0; } .MsoNormal{ margin: 0 0 0 0; } #ygrp-text
> tt{ font-size: 120%; } blockquote{margin: 0 0 0 4px;} .replbq{margin:
> 4} -->




Mon Sep 8, 2008 5:11 pm

sallamar
Online Now Online Now
Send Email Send Email

Message #11265 of 14748 |
Expand Messages Author Sort by Date

Hi all, I'm new to this mailing list and to be honest: I've neve been on a mailing list before. So in case I'm doing things wrong, please be forgiving. ...
bierstuebl
Offline Send Email
Sep 8, 2008
1:05 am

... RFC 2616 does not specify a meaning for the Location header in the context of a 202 response, so do not expect clients to know what to do with your...
Aristotle Pagaltzis
a22pag
Offline Send Email
Sep 8, 2008
1:55 am

As Aristotle replied, Location header is unspecified for 202 (Accepted). Instead, provide a body such as the following: <status> <link...
Subbu Allamaraju
sallamar
Online Now Send Email
Sep 8, 2008
5:11 pm

Rfc says: The entity returned with this response SHOULD include an indication of the request's current status and either a pointer to a status monitor or some...
Sebastien Lambla
serialseb
Offline Send Email
Sep 8, 2008
5:59 pm

... The fundamental problem with this approach is that the semantics of 202 Accepted are unspecified for a GET. Subbu...
Subbu Allamaraju
sallamar
Online Now Send Email
Sep 8, 2008
6:54 pm

... What the spec says about 202 is this: The request has been accepted for processing, but the processing has not been completed. The request might or might ...
Aristotle Pagaltzis
a22pag
Offline Send Email
Sep 9, 2008
5:48 am

... By replacing: "The GET has been accepted for processing, but the processing has not been completed". I understand my interpretation is unconventional, but...
Sebastien Lambla
serialseb
Offline Send Email
Sep 9, 2008
4:45 pm

You may be mis-interpreting 2616. The behavior of 202 is defined for POST and DELETE only, and the behavior of the Location header is undefined for 202. It is...
Subbu Allamaraju
sallamar
Online Now Send Email
Sep 9, 2008
5:51 pm

... If you interpret a 202 to a get as a non-defining response, then when the resource does become available that url would return a 200 or a 404. The entity...
Sebastien Lambla
serialseb
Offline Send Email
Sep 9, 2008
8:15 pm

... I see what you suggesting. Yes, this is certainly possible, but I would still question (a) overloading 202 in an unspecified manner, and (b) merging an...
Subbu Allamaraju
sallamar
Online Now Send Email
Sep 9, 2008
8:34 pm

... I agree with (a) to a certain extent as it does extend ever so slightly the current definition. B however would seem to work fine: a 202's entity may ...
Sebastien Lambla
serialseb
Offline Send Email
Sep 9, 2008
9:41 pm

I'm reviving this thread from 3 months ago. I hope it's still relevant -- I encounter the use case every day. Sebastien is right that we should develop an...
Hugh Winkler
hwinkler99
Offline Send Email
Dec 24, 2008
11:44 pm

... 2616 defines it as having accepted the request for processing. Since GET returns an entity representing the current state of a resource, I don't think...
Jon Hanna
hack_poet
Online Now Send Email
Dec 25, 2008
1:15 pm

... Agreed. Regards, -- Aristotle Pagaltzis // <http://plasmasturm.org/>...
Aristotle Pagaltzis
a22pag
Offline Send Email
Dec 27, 2008
3:45 am

... Yes, you can put the word “GET” in the sentence, but the sentence doesn’t make any sense that way. ... It’s meaningless to say “I got your GET,...
'Aristotle Pagaltzis'
a22pag
Offline Send Email
Sep 9, 2008
5:52 pm
Advanced

Copyright 2010 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help