feat: encode numeric discriminators as an integer value #1611
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.
I've encountered an issue with the typing of discriminators. To illustrate the issue here's a minimum reproducible example.
Ogen now generates an
encodeFieldsmethod onExamplePostBadRequest. It will encode the fieldcodeas a string while the api specification says it will be aninteger.This PR creates a fix for this by testing if the discriminator can be parsed as an integer. If that is the case a slightly altered template is used and the following code is generated.
I suppose this is a bit of a naive fix, what if we want to use
3but need it to be of a string type. However this completely fixes my issue.If this PR is good as is it would be great if it could be merged. If this solution is no good it would be great if someone could nudge me in the right direction to tackle this issue.