Skip to content

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

Open

Description

@gklittlejohn

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions