If you want to alter the Reason-Phrase, you can already do that - objects like 
NotFoundResponse are just helpers on InMemoryResponse... nothing stopping you 
adding your own helpers that set headers with customised reason codes; this 
should give you what you what. I haven't managed to find an RFC that lists 
reason-phrase as anything but a particular header in the HTTP response. 

Moreover, its not the wrong thing to return a plain text response if the 
request mime was text/plain... indeed, it would be even less helpful if it 
returned JSON or such. IMHO, the response type should match what was asked for 
by the caller - i.e. its an implementation issue not a framework level issue. 

Tim

On 6 Feb 2010, at 21:55, Erkki Lindpere wrote:

> The NotFoundResponse (and others) puts the custom message into the
> request body. That works as well, but to be really lean (mainly for
> bragging rights :)) I'd like to remove any unnecessary elements from
> the rest api. Most of the error messages are going to be simple one-
> line messages (and short sentences). For some errors I might provide a
> detailed response and it could go into the body, as XML/JSON/...
> That's inconsistent if the other errors have a plain text message in
> the body.
> So I could either go with structured details for all messages or in
> simple cases use the HTTP headers or status line. A custom header
> would work, but the status line is standard and also more easily
> accessed with some client libraries.
> 
> And last but perhaps not least, for debugging purposes, the HTTP
> Reason Code should show up better in web developer tools (for example
> FireBug, Chrome's tools). My web UI also goes through the REST API so
> it would be nice to read error messages right in the listing in
> firebug's net panel.
> 
> So I'm suggesting that perhaps Lift would like to provide only the
> possibility of changing that value in user code. But I completely
> understand if it doesn't. Currently it doesn't seem to be supported in
> Lift's http.provider package and even in javax.servlet the
> setStatus(int, String) method is deprecated (I'm not sure if
> sendError(int, String) uses the reason phrase).
> 
> Erkki L
> 
> On Feb 6, 9:59 pm, Ross Mellgren <dri...@gmail.com> wrote:
>> I think it would be fine to have different text there, probably better than 
>> having the standard text if you have refined detail. I don't think it'd be a 
>> good idea to conditionalize on the response text in client code - that's 
>> always fragile. If you want to give additional machine-readable detail, I'd 
>> put it in a response header or in the body as a JSON or XML field or what 
>> have you.
>> 
>> You can specify custom text there, but you may have to sidestep the usual 
>> response classes, depending on which one. The one you gave, not found, can 
>> have the message customized though, just do new NotFoundResponse("the 
>> message").
>> 
>> -Ross
>> 
>> On Feb 6, 2010, at 2:52 PM, Erkki Lindpere wrote:
>> 
>>> It seems Lift does not support custom HTTP Reason Phrases in
>>> responses. I would like to send error messages in the Reason Phrase
>>> (along with a vaguely applicable HTTP status code) in a RESTful API
>>> I'm providing. My understanding of the HTTP spec is that the reason
>>> phrase is meant to be human readable and does not have to contain the
>>> recommended messages (i.e. "Not Found").
>> 
>>> But maybe it would not be wise to do this? I'm not actually aware of
>>> any API-s that send error messages in the Reason Phrase.
>> 
>>> --
>>> You received this message because you are subscribed to the Google Groups 
>>> "Lift" group.
>>> To post to this group, send email to lift...@googlegroups.com.
>>> To unsubscribe from this group, send email to 
>>> liftweb+unsubscr...@googlegroups.com.
>>> For more options, visit this group 
>>> athttp://groups.google.com/group/liftweb?hl=en.
>> 
>> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Lift" group.
> To post to this group, send email to lift...@googlegroups.com.
> To unsubscribe from this group, send email to 
> liftweb+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/liftweb?hl=en.
> 
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to lift...@googlegroups.com.
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en.

Reply via email to