Simplify handling of Expand and ExtraParams #1499
Merged
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.
r? @remi-stripe
Simplify handling of
Expand
andExtraParams
inBaseOptions
:Expand
is now annotated with[JsonProperty("expand")]
ExtraParams
is now annotated with[JsonExtensionData]
JsonExtensionData
is a special attribute in Newtonsoft.Json that instructs the JSON serializer to write the values in the collection during serialization and to deserialize values with no matching class member during deserialization.I added a few lines of code to
FormEncoder
to do something similar in our own serialization process. I also had to change the type ofExtraParams
fromDictionary<string, string>
toDictionary<string, object>
, but I think that's better anyway, as it lets uses use non-string extra params (e.g. a list or a hash).Also,
Expand
is nownull
by default instead of an empty list, because otherwise it would be serialized asexpand=
when the list is empty. UsingAddExpand()
will automatically create the list if necessary.