[v2] Update JSON formatter to encode bytes as Base64 strings #9424
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Follow-up bugfix for #9388.
Current Problem
When a service sends back a response containing a member with raw bytes, the CLI JSON formatter fails with an error and does not output the complete response. Since CBOR is not a modeled protocol by any service (as of writing), this bugfix should not be a breaking change.
Explanation of problem
When using the JSON wire protocol, a service encodes the raw bytes as base64 (string) to represent it in JSON before sending it back. CLI's JSON formatter perfectly handles strings.
However, when using CBOR as the wire protocol, the service sends the raw bytes, so now it is up to us to encode the bytes as base64 to represent it in JSON format.
Description of changes
Description of tests
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.