Sinatra と MessagePack を使用して API を構築しようとしていますが、自分自身を撃とうとしています :)
したがって、curl を使用して POST を実行しています。
curl -X POST -H "Content-Type: application/x-msgpack" --data-binary '\x82\xA4uuid\xBD8asd76a-a8s7a6d87-asd76as8d76\xABcampaign_id\xA12' http://localhost:9393/
今シナトラで私はただやります:
MessagePack.unpack request.body.read
そして、これは次のエラーにつながります:
MessagePack::MalformedFormatError Exception: extra bytes follow after a deserialized object
request.body.read が返されるため:
"\\x82\\xA4uuid\\xBD8asd76a-a8s7a6d87-asd76as8d76\\xABcampaign_id\\xA12"
instead of
"\x82\xA4uuid\xBD8asd76a-a8s7a6d87-asd76as8d76\xABcampaign_id\xA12"
force_encoding(Encode::BINARY) やその他のばかげたことなど、考えられることはすべて試しました。ルビー、ラック、シナトラのどちらが問題を引き起こしているのかわかりません。