Go language support JSON Schema binary data to byte array type
Context (Input, Language)
If you have binary data (e.g. TypeScript ArrayBuffer) and you want to store it in a JSON document, the recommended JSON Schema is:
{
"type": "string",
"contentEncoding": "base64",
"contentMediaType": "application/octet-stream"
}
(this is per https://json-schema.org/understanding-json-schema/reference/non_json_data )
In Go, using the above JSON Schema with quicktype currently generates code using the string type, where []byte is actually correct because json Marshal/Unmarshal will correctly base64 encode/decode the payload into the byte array (where as string will leave the base64 string as-is).
Description
I'm trying to interop between a TypeScript component and a Go component, however there is no way to get Go generated code to use a byte array type []byte where I need it.
Current Behaviour / Output
Current Go type is string
Proposed Behaviour / Output
Desired Go type is []byte
Solution
Solution would be for JSON Schema fields which have a string type, to check if contentEncoding and contentMediaType is defined as above, and then use the []byte type.
Hello
Following up on the issue, the Go code is still generating the field as string instead of []byte for base64-encoded binary data. Can this be fixed to auto-generate []byte when "contentEncoding": "base64" is used in the schema?