Storing as erlang-binary/term, reading as json.

Jonathan Langevin jlangevin at loomlearning.com
Thu Aug 11 16:46:36 EDT 2011


Thanks for the correction there Dan. Seems I need to start responding...
much more slowly, so you guys get in the correct answer before I speak :-)

Cheers!
*

<http://www.loomlearning.com/>
Jonathan Langevin
Systems Administrator
Loom Inc.
Wilmington, NC: (910) 241-0433 - jlangevin at loomlearning.com -
www.loomlearning.com - Skype: intel352
*


On Thu, Aug 11, 2011 at 4:42 PM, Dan Reverri <dan at basho.com> wrote:

> The Accept header indicates what content-type your client is able to
> handle. When you specify "application/json" in the Accept header you are
> telling Riak to return the object if it's content-type is "application/json"
> otherwise return 406.
> http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.7
>
> Thanks,
> Dan
>
> Daniel Reverri
> Developer Advocate
> Basho Technologies, Inc.
> dan at basho.com
>
>
>
> On Thu, Aug 11, 2011 at 1:32 PM, Jonathan Langevin <
> jlangevin at loomlearning.com> wrote:
>
>> I believe the Accept parameter is intended only for the ability to list
>> riak-native data. So to get riak parameters back as json, that's when you
>> specify the Accept header.
>> Regarding objects that you store it Riak, my experience has been that it
>> returns the data back as you stored it. So based on the type that you
>> specify when posting/putting the data, is the content type that you get
>> back.
>>
>> If I'm wrong, hopefully someone will correct me shortly :-)
>>
>>  <http://www.loomlearning.com/>
>> * Jonathan Langevin
>> Systems Administrator
>> Loom Inc.
>> Wilmington, NC: (910) 241-0433 - jlangevin at loomlearning.com -
>> www.loomlearning.com - Skype: intel352 *
>>
>>
>>
>> On Thu, Aug 11, 2011 at 12:03 PM, Fyodor Yarochkin <fyodor.y at armorize.com
>> > wrote:
>>
>>> Greetings,
>>>  I am probably missing something obvious, but I've been playing with
>>> it for a couple of days, still can't figure out the consistency and I
>>> am still a little lost with riak source code so I thought I'd drop a
>>> line here:
>>>
>>> I am experimenting with querying riak data data in different mime
>>> formats from riak cluster. So for the tests, I am having a piece of
>>> erlang code, which uses riak-erlang-client, writes some data into riak
>>> as erlang-binary.
>>>
>>>    Object = riakc_obj:new(<<"test">>,
>>> test_util:get_datekey(),{struct, [{field, Value}]}),
>>>    riakc_pb_socket:put(RiakPid, Object),
>>>
>>> Now I am trying to make the data to be accessible to non-erlang
>>> clients so the node.js code (for example) would be able to read it as
>>> json.
>>>
>>> My understanding is that I should be able to specify that I want
>>> json-formatted data back by adding 'Accept: application/json' header
>>> (per example here http://wiki.basho.com/HTTP-List-Resources.html)
>>>
>>> However I am getting HTTP 406 whenever I am trying to query anything
>>> but erlang-binary:
>>>
>>> srv# curl -i 'http://localhost:8098/riak/test/2011811234248'
>>> HTTP/1.1 200 OK
>>> X-Riak-Vclock: a85hYGBgymDKBVIsLC6FEzKYEhnzWBkyincc54MIszUnMfB8v4wskQUA
>>> Vary: Accept-Encoding
>>> Server: MochiWeb/1.1 WebMachine/1.7.3 (participate in the frantic)
>>> Link: </riak/test>; rel="up"
>>> Last-Modified: Thu, 11 Aug 2011 15:38:16 GMT
>>> ETag: "6iDf0EKIk76L1KxlXoSB29"
>>> Date: Thu, 11 Aug 2011 15:33:41 GMT
>>> Content-Type: application/x-erlang-binary
>>> Content-Length: 565
>>>
>>>
>>> However, for application/json
>>>
>>> srv# curl -H 'Accept: application/json' -i
>>> 'http://localhost:8098/riak/test/2011811234248'
>>> HTTP/1.1 406 Not Acceptable
>>> Server: MochiWeb/1.1 WebMachine/1.7.3 (participate in the frantic)
>>> Date: Thu, 11 Aug 2011 15:34:12 GMT
>>> Content-Length: 0
>>>
>>>
>>> So, should I store the data as 'json' (json string converted to erlang
>>> binary) in order to have some uniform data format accessible to erlang
>>> and non-erlang clients?
>>> also, how do map-reduce functions work in this case, do they have to
>>> be strictly erlang in the case of having x-erlang-binary, or the data
>>> could be converted to json for javascript?
>>>
>>> thanks,
>>> -Fyodor
>>>
>>> _______________________________________________
>>> riak-users mailing list
>>> riak-users at lists.basho.com
>>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>>
>>
>>
>> _______________________________________________
>> riak-users mailing list
>> riak-users at lists.basho.com
>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20110811/44a75eb0/attachment.html>


More information about the riak-users mailing list