Skip to content

Failed validating 'oneOf' in schema #113

Closed

Description

@manchenkoff

Hi, after updating to the latest release I had a strange error with schemas.

Swagger example

/couriers/{courierIdentifier}:
        get:
            description: 'description text'
            tags:
                - Couriers
            parameters:
                -   $ref: '#/components/parameters/courierIdentifierInPath'
            responses:
                200:
                    description: 'successful response'
                    content:
                        application/json:
                            schema:
                                $ref: 'definitions/couriers/get.yml#/responses/GetResponse'
                400:
                    $ref: '#/components/responses/CommonSuccessfulResponse'
                500:
                    $ref: '#/components/responses/CommonSuccessfulResponse'

Validation error

{'description': 'successful response', 'content': {'application/json': {'schema': {'$ref': 'definitions/couriers/get.yml#/responses/GetResponse', 'x-scope': ['file:///data/swagger.yml']}}}} is not valid under any of the given schemas

Failed validating 'oneOf' in schema['properties']['paths']['patternProperties']['^\\/']['patternProperties']['^(get|put|post|delete|options|head|patch|trace)$']['properties']['responses']['patternProperties']['^[1-5](?:\\d{2}|XX)$']:
    {'oneOf': [{'$ref': '#/definitions/Response'},
               {'$ref': '#/definitions/Reference'}]}

On instance['paths']['/couriers/{courierIdentifier}']['get']['responses']['200']:
    {'content': {'application/json': {'schema': {'$ref': 'definitions/couriers/get.yml#/responses/GetResponse',
                                                 'x-scope': ['file:///data/swagger.yml']}}},
     'description': 'successful response'}

But if I remove $ref parameter in schema description or change it to type: string it works fine.

Do you know any solutions? Thanks

Activity

  1. vmarkovtsev commented on Feb 26, 2021

    @vmarkovtsev

    This happens to me, too.

    /become:
        get:
          operationId: become_user
          parameters:
          - description: Numeric identifier of the user to turn into.
            explode: false
            in: query
            name: id
            required: false
            schema:
              type: string
            style: simple
    

    Error:

    connexion.exceptions.InvalidSpecification: {'description': 'Numeric identifier of the user to turn into.', 'explode': False, 'in': 'query', 'name': 'id', 'required': False, 'schema': {'type': 'string'}, 'style': 'simple'} is not valid under any of the given schemas
    
    Failed validating 'oneOf' in schema['properties']['paths']['patternProperties']['^\\/']['patternProperties']['^(get|put|post|delete|options|head|patch|trace)$']['properties']['parameters']['items']:
        {'oneOf': [{'$ref': '#/definitions/Parameter'},
                   {'$ref': '#/definitions/Reference'}]}
    
    On instance['paths']['/become']['get']['parameters'][0]:
        {'description': 'Numeric identifier of the user to turn into.',
         'explode': False,
         'in': 'query',
         'name': 'id',
         'required': False,
         'schema': {'type': 'string'},
         'style': 'simple'}
    
  2. briankinney commented on Mar 1, 2021

    @briankinney

    I have this issue as well. For now I have added openapi-spec-validator<0.3 in my project's requirements.txt to avoid this issue.

  3. Altreus commented on May 19, 2021

    @Altreus

    You're probably getting stuck on #126 - The easiest workaround is to make a very basic '#/components/schemas/simple and point all your refs to that; then it'll validate all your other schemata and tell you where the error is.

  4. MRigal commented on Jun 21, 2021

    @MRigal

    Also pinning down the package here... :-/

  5. JulienPalard commented on Sep 2, 2021

    @JulienPalard
    Contributor

    Does #129 helps?

    It can be tried temporarily using:

    pip install --force-reinstall git+https://github.com/JulienPalard/openapi-spec-validator@show-context
    
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