Make Blob have "$type" field when serialized #9
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.
When you serialize a blob
it prints
{"ref":{"$link":""},"mimeType":"","size":0}
. As you can see, there is no"$type":"blob"
field, which makes it impossible to make a post with an image for example (it fails with the following error:{"error":"InvalidRequest","message":"Invalid app.bsky.feed.post record: Record/embed/images/0/image should be a blob ref"}
)@SerialName("blob")
annotation on the sealed interface seems to have no effect because of the customBlobSerializer
serializer being used, so the workaround I found is to add a property inside the class annotated with@EncodeDefault
which forces it to serialize the propertyThen the code above prints:
{"ref":{"$link":""},"mimeType":"","size":0,"$type":"blob"}