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

Validator doesn't report properties that are in the required list but not defined

Open energister opened this issue 2 years ago • 0 comments

Following specification causes validator to report only the event-photo property

Required list has not defined properties: ['event-photo']

whereas I would expect similar messages for the problem-type, order-trees and site-location properties.

openapi: 3.0.3
info:
  title: Protect Earth API
  version: 0.3.0
paths:
  /events:
    get:
      operationId: get-events
      summary: Get Events
      description: Get a list of all the events
      tags:
        - Event
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Generic_Problem'

  /orders:
    post:
      operationId: post-orders
      summary: Create Order
      tags:
        - Order
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Order'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'

components:
  schemas:
    Generic_Problem:
      title: Problem
      type: object
      required:
        - problem-type
        - title
      properties:
        title:
          type: string
        status:
          type: integer
  
    Event:
      title: Event
      type: object
      required:
        - description
        - event-photo
      properties:
        id:
          type: string
        summary:
          type: string
        description:
          type: string

    Order:
      title: Order
      type: object
      required:
        - site
        - order-trees
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        site:
          $ref: '#/components/schemas/Site'

    Site:
      title: Site
      type: object
      required:
        - url
        - site-location
      properties:
        id:
          type: string
          format: uuid
        url:
          type: string
          format: url

energister avatar Aug 18 '23 12:08 energister