[Developers] mqlread http response header (content-type)
Alec Flett
alecf at metaweb.com
Fri Sep 19 16:49:31 UTC 2008
Below is the long answer. The short answer is "the docs are out of
date" :)
Much of the reasoning is practical - application/json made it really
hard to debug because browsers refuse to display application/json
directly in the browser - application/json makes the browser prompt
the user with a save/launch dialog. Not to mention that certain APIs
(like image upload) can only be run in IFRAMEs in the browser, which
means those APIs must return text/plain so they can be intercepted and
parsed by JS.
When you're developing against a JSON API, it's much easier to see
this stuff visible instead of launching a separate app like notepad /
textedit.
When considering the above, there didn't seem to be any actual value
in making it return application/json - nobody we talked to could come
up with a reason that making it application/json would be any better
than it returning text/plain
Augusto - is there a particular reason you need application/json?
Alec
On Sep 18, 2008, at 11:53 AM, Christine Weibel wrote:
>
> Hmm. mqlread did used to return a content-type of application/json,
> but there was a deliberate change to text/plain a while ago. it is
> my recollection that was done for some browser compatibility issue?
> perhaps alecf remembers this.
>
>
>
> ----- Original Message -----
> From: "Augusto Callejas" <acallejas at appliedminds.com>
> To: "For discussions about MQL, Freebase API and apps built on
> Freebase" <developers at freebase.com>
> Sent: Thursday, September 18, 2008 11:39:29 AM (GMT-0800) America/
> Los_Angeles
> Subject: Re: [Developers] mqlread http response header (content-type)
>
> according to the documenation:
>
> http://www.freebase.com/view/guid/9202a8c04000641f800000000544e139
>
> =====
> 4.2.2. mqlread Output
>
> mqlread returns an HTTP response with a Content-Type header of
> application/json (or text/plain if the callback parameter was
> specified).
> The body of the response is a JSON-serialized envelope object that
> holds a
> MQL result object (or objects if multiple queries were submitted). The
> format of mqlread response envelopes is specified in Section 4.2.3
> =====
>
> however i did not specify a callback parameter, so how do i get
> mqlread to
> return its response as "application/json" and not text/plain;
> charset="utf-8".
>
> thanks,
> augusto.
>
>
> On 9/17/08 9:36 AM, "Augusto Callejas" <acallejas at appliedminds.com>
> wrote:
>
>> hi-
>>
>> when i perform a mqlread query, i get back HTTP response headers
>> that look
>> like:
>>
>> =====
>> Date: Wed, 17 Sep 2008 00:51:35 GMT
>> ,
>> Server: Apache
>> ,
>> X-Metaweb-Success: 1/1
>> ,
>> Content-Length: 35616
>> ,
>> Content-Type: text/plain; charset="utf-8"
>> ,
>> ...
>> Connection: Keep-Alive
>> =====
>>
>>
>> shouldn't the "Content-Type" header value be "application/json"?
>>
>> http://www.iana.org/assignments/media-types/application/
>>
>> i'm having a problem with the 'charset="utf-8"' in the header.
>> the java http client library that i'm using (
>> http://hc.apache.org/httpclient-3.x/) reads the response (see example
>> below), and decodes any unicode characters (ie. /u001a) into their
>> actual
>> character value. however, this is before i get a chance to decode
>> it in my
>> json library. however, the unicode characters have already been
>> decoded at
>> the http level, but not at the json level.
>>
>> any thoughts?
>>
>> thanks,
>> augusto.
>>
>>
>> query
>> =====
>> {"q":{"query":
>> {
>> "master_property" : "/type/object/name",
>> "operation" : "delete",
>> "source" : {
>> "guid" : "#9202a8c04000641f8000000006e31736"
>> },
>> "target_value" : {
>> "value" : null
>> },
>> "timestamp" : "2008-08-30T18:56:23.0000Z",
>> "type" : "/type/link",
>> "valid" : null
>> }
>> }}
>> =====
>>
>>
>> response
>> =====
>> {
>> "master_property" : "/type/object/name",
>> "operation" : "delete",
>> "source" : {
>> "guid" : "#9202a8c04000641f8000000006e31736"
>> },
>> "target_value" : {
>> "value" : "Friesengeist 2: Regelm\u001aässige Zerstö\u001arungen"
>> },
>> "timestamp" : "2008-08-30T18:56:23.0000Z",
>> "type" : "/type/link",
>> "valid" : null
>> }
>> =====
>>
>>
>> _______________________________________________
>> Developers mailing list
>> Developers at freebase.com
>> http://lists.freebase.com/mailman/listinfo/developers
>
>
> _______________________________________________
> Developers mailing list
> Developers at freebase.com
> http://lists.freebase.com/mailman/listinfo/developers
>
More information about the Developers
mailing list