Gordon's recent post

When the message is created it looks like this:

     std::string messageContent("example text");
     qpidMessage.setContentType("text/plain");
     qpidMessage.setContent(qpid::types::Variant(messageContent));

Use Message::setContentObject() instead and set the encoding, e.g. change the last line to:

      qpidMessage.setContentObject(messageContent);
      qpidMessage.getContentObject().setEncoding("utf8");



prompted me to ponder about what and what is not the correct use of content-type in AMQP 1.0.

So for AMQP 0.10 IIRC in qpid::messaging the content type was used to indicate certain AMQP types, for example in particular amqp/list and amqp/map now as I understand it for AMQP 1.0 the AMQP type system is sufficiently self-describing such that maps/lists/whatever don't need such things as content-type, however the various APIs do need some mechanism to specify the relevant type hence (I think) the setContentObject() mechanism in qpid::messaging

is that correct?


Why I ask is that for my JavaScript stuff although I've incorporated a mechanism to automagically serialise and deserialise JavaScript Objects to the AMQP type system I also quite fancy including a mechanism that takes a JavaScript Object and serialises it as JSON in an AMQP String (obviously assuming that it is a data object that is actually convertable to JSON) similarly I'd like to be able to receive a JSON object and deserialise it into a JavaScript object.

My thinking is that this is actually a good use of the AMQP content-type and in this case setting content-type to "application/json" is the right thing to do to give the API the right hints to treat Strings as JSON.

Is my logic and understanding of the use of content-type in the AMQP 1.0 spec. reasonable?

Frase





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to