express-openapi-validator icon indicating copy to clipboard operation
express-openapi-validator copied to clipboard

Optional deep query parameter handling is broken.

Open ownagedj opened this issue 4 years ago • 0 comments

Describe the bug Having a query parameter schema like this:

name: sort
example:
  field: created
  order: desc
in: query
style: deepObject
required: false
schema:
  type: object
  required:
    - field
    - order
  properties:
    field:
      enum:
        - created
    order:
      enum:
        - desc
        - asc

To Reproduce Create an operation with the given query above and do not include a sort parameter

Actual behavior Request results in a 400 validation error

{
    "error":
    {
        "code": "Error",
        "message": "request.query.sort should have required property 'field', request.query.sort should have required property 'order'",
        "details":
        [
            {
                "path": ".query.sort.field",
                "message": "should have required property 'field'",
                "errorCode": "required.openapi.validation"
            },
            {
                "path": ".query.sort.order",
                "message": "should have required property 'order'",
                "errorCode": "required.openapi.validation"
            }
        ]
    }
}

Expected behavior The parameter validation must not fail as it should be skipped.

ownagedj avatar Sep 07 '21 12:09 ownagedj