OpenAPI spec using allOf to override inherited property

Viewed 2678

I am attempting to run an existing OpenAPI schema through Open API Enforcer and I am getting various validation errors in the usage of allOf. One such usage is described below:

Consider the following property in a schema:

queryVersion:
    allOf:
      - $ref: 'VersionDefinition.yaml'
      - description: >-
          This is my overriding version

VersionDefinition.yaml is defined as follows:

description: >-
  Some default version description.
type: string
default: '5.2'

There are two issues with the above definition:

  1. OpenAPI Enforcer expects all schemas defined within allOf or similar keyword to start with a type definition. So, the error it spits out is:

    at: queryVersion > allOf > 1 Missing required property: type

I fix that by modifying the allOf definition as follows:

 queryVersion:
    allOf:
    - $ref: 'VersionDefinition.yaml'
    - type : object
      properties:
      - description: >- 
           This is my overriding version

That eliminates the error but what should I expect to see in the generated schema? Original author indicates he is using allOf to override the property description. However, the generated schema includes this result:

                "queryVersion": {
                    "allOf": [
                      {
                        "description": "Some default version description",
                        "type": "string",
                        "default": "5.2"
                      },
                      {
                        "type": "object",
                        "properties": [
                          {
                            "description": "This is my overriding version"
                          }
                        ]
                      }
                    ]
                  }

What I expected to see was:

      "queryVersion": {
                        "description": "This is my overriding version",
                        "type": "string",
                        "default": "5.2"
                      }

I'll keep digging but any ideas?

0 Answers
Related