microsoft / OpenAPI.NET.OData

Generates OpenAPI document from OData CSDL
MIT License
207 stars 62 forks source link

When EnableDiscriminatorValue is set to true all types end up with a required property of odata.type #520

Open gklittlejohn opened 6 months ago

gklittlejohn commented 6 months ago

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

  1. Create an odata model with no derived types.
  2. 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.