(fix, go): Required properties don't specify omitempty #4231
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.
Overview
This fixes an issue where required properties are omitted in the type's wire representation. This feature is gated behind a feature flag to preserve the behavior found in current SDKs.
When
alwaysSendRequiredProperties
is enabled, required properties are never omitted in the type's wire representation. Any required property that is not explicitly set will send the default value for that type. The configuration to enable this behavior is shown below:Example
Consider the following types:
If the
CreateUserRequest
is constructed without any values, it will sendnull
for both fields. If it is instead constructed with the zero value of the underlying type, the empty representation will be sent: