Hi again,

Excellent points John and Thierry! Here are the changes that I've made:
 * removed the "defaultHandle()" to force explicit setting of the status in
context
 * Handler is now abstract and findTarget() must be implemented
 * findTarget() is now automatically invoked by the general handle() method
 * if findTarget returns "null": 404 Not Found
 * if no method is specified in the request: 400 Bad Request
 * if no matching handle* method could be found: 405 Method Not Allowed
 * if allow* method returns false: 405 Method Not Allowed
 * the set of allowedMethods is automatically updated introspecting allow*
methods

Best regards,
Jerome  

> -----Message d'origine-----
> De : Thierry Boileau [mailto:[EMAIL PROTECTED] 
> Envoyé : dimanche 10 décembre 2006 11:22
> À : discuss@restlet.tigris.org
> Objet : Re: Re: Handler.defaultHandle() 501 vs 405?
> 
> I think that you make good remarks!
> 
> >If the target is null then is that a sign of of a bug in the 
> implementation or a broken request?
> Answering this question helps taking the right way. I don't 
> know really what a null target means. 
> 
> best regards,
> Thierry
> 
> 
> 
> On 12/10/06, John D. Mitchell <[EMAIL PROTECTED]> wrote: 
> 
>       On 12/9/06, Thierry Boileau <[EMAIL PROTECTED] > wrote:
>       > John,
>       >
>       > At this time in the Handler class, the 501 status is 
> used for 2 cases :
>       >   - the method of the request is unknown (not a GET, 
> PUT, etc),
>       >   - the method is known, but there is no handler for 
> the resource. 
>       >
>       > I think we all agree that 501 status fits the first case.
>       
>       If the target is null then is that a sign of of a bug in the
>       implementation or a broken request?
>       
>       For the former, it's arguable that a 501 makes sense 
> but, IMHO, a 
>       straight 500 is more correct.  I.e. the 501 implies 
> that we haven't
>       implemented something and that's a known condition 
> whereas the 500
>       indicates server bug.
>       
>       In the latter case, it seems pretty clear to me that 
> the response 
>       should be a 400 (Bad Request) since it's actually a 
> malformed request.
>       Though, that evolves to the 405 since we know its the 
> method name
>       that's the problem and so we can use the 405 directly.
>       
>       > But, for the 
>       > second case, I would like to ask the following 
> question : if the response
>       > status is 405, is it possible to define the allowed 
> methods for the resource
>       > though the resource cannot be handled?
>       > I wonder if status 404 should be used instead in this case. 
>       
>       I think that would be very misleading.
>       
>       In terms of returning something useful in the allows 
> header, isn't the
>       work basically the same as what's already being done for the
>       Handler.handle() method?  I.e ., lookup what handle*() 
> methods are
>       defined.
>       
>       Thanks,
>       John
>       
> 
> 
> 

Reply via email to