ChrisA and I are planning to release new versions of TurboJson, but we 
found some problems with the determination of the right content type 
that should be fixed in the new version (see also ticket #1480).

If no content type is explicitly requested, the generic render() 
function in view/base.py calls a method get_content_type(user_agent) of 
the template engine, currently only implemented by TurboJson.

* Issue 1: TurboJson always returns "text/javascript", but nowadays 
"application/json" should be used. I'd like to change that, and make 
expose() also understand "application/json". MochiKit also uses that 
content type in loadJSONDoc.

* Issue 2: There is actually a case destinction for Opera as the user 
agent, where "text/plain" is returned. But since the user agent is 
always passed as None due to a bug in view/base.py, this case 
distinction has never been effective. And I don't know if it was ever 
needed, surely not for current Opera versions.

* Issue 3: Should get_content_type really be a function? If yes, what 
input parameters does it need? I think much more important than the 
user_agent are the accept header and the format parameter. For instance, 
if forma is 'plain', then get_content_type (if implemented in TurboKid, 
for instance) should return 'text/plain'. Currently we need to set 
content_type explicitly to 'text/plain'.

* Issue 4: I noticed that the expose decorator gets passed the full 
Accept header in controller.py. But the Accept header can be a list. 
Shouldn't we better pass only the first item of that list?

Some ideas on fixing these issues would be highly appreciated.

-- Chris

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears Trunk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/turbogears-trunk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to