1.4 KiB
Executable File
1.4 KiB
Executable File
Qualtrics Serialization Go Library
NOTE: The Go QSL library does not support fast filtering or partial decoding. It does support full decoding and re-encoding into a smaller, compatible schema. NOTE: The schema spec compatibility checking does not play nicely with complex schema declarations. It cannot interpret the compatibility of a union with any schema spec.
Installation
go get gitlab.app-eng.qops.net/golang/qmp/serialization
Usage
Initialize
import qsl "gitlab-app.eng.qops.net/golang/qmp/serialization"
// ...
err := qsl.RegisterApplication("my-client-name")
if err != nil { /* handle */ }
Read QMessages
qr, err := qsl.NewReader("schema.name.v1")
if err != nil { /* handle */ }
// ...
qm, err := qr.NewMessage(encodedAvroObject)
if err != nil { /* handle */ }
Write QMessages
qw, err := qsl.NewWriter("schema.name.v1")
if err != nil { /* handle */ }
// Blank QMessage from writer's schema
msg, err := qw.NewMessage()
if err != nil { /* handle */ }
msg.SetTraceID("Look at me, I'm Mr. Meeseeks")
// QMessage from a QMessage compatible with writer's schema
msg, err = qw.NewFromQMessage(msg)
if err != nil { /* handle */ }
// QMessage from a map of the writer schema's fields and their values
msg, err = qw.NewFromObject(map[string]interface{}{"schema_id":"my.schema.v1"})
if err != nil { /* handle */ }