microsoft / microsoft/OpenAPI.NET.OData
When EnableDiscriminatorValue is set to true all types end up with a required property of odata.type
Personne n'a encore pris cette issue.
- Langage dominant
- C#
- Étoiles
- 240
- Forks
- 70
- Merge moyen
- 7 h 59 min
- PR mergées (30 j)
- 13
Description
My understanding is odata.type is only required in the case the type cannot be determined such as it being a type derived from the specified type.
When using EnableDiscriminatorValue = true I get correctly odata.type used as a discriminator when a type has a derived type.
I also get however for seemingly all types, odata.type included as a required property.
Assemblies affected
v1.1.0
Steps to reproduce
- Create an odata model with no derived types.
- Generate an Open API specification from the model with EnableDiscriminatorValue = true.
Expected result
I would only expect odata.type to be required in the case a type is a derived type.
Actual result
odata.type is set as required for all types.
If I use Open API connected services in Visual Studio with the specification to generate a client, the client will fail to deserialize responses missing the required property by default.
Additional detail
This can be worked around in most case.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire le problème avec un modèle OData qui ne comporte aucun type dérivé et pour lequel EnableDiscriminatorValue est défini sur true, puis examinez la spécification OpenAPI générée. Suivez la manière dont les métadonnées du discriminant deviennent une propriété obligatoire ; le travail est terminé lorsque odata.type n’est obligatoire que là où les types dérivés le rendent nécessaire, sans interrompre la désérialisation valide côté client.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- csharp, openapi
- Domaine
- api
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100