APIDevTools / swagger-parser

Swagger 2.0 and OpenAPI 3.0 parser/validator
https://apitools.dev/swagger-parser
MIT License
1.09k stars 154 forks source link

Semantic error at paths is not detected by validator #176

Open lenchvolodymyr opened 3 years ago

lenchvolodymyr commented 3 years ago

The swagger-parser doesn't validate semantic error when path parameter has invalid type.

This schema is invalid according to swagger-editor

openapi: 3.0.3
info:
  title: ''
  version: '1.0'
paths:
  '/items/{id}':
    get:
      parameters:
        - name: id
          in: query
          required: true
          schema:
            type: object
            nullable: false
      responses:
        '200':
          description: ''
components: {}

It shows the following error:

Semantic error at paths./items/{id}
Declared path parameter "id" needs to be defined as a path parameter at either the path or operation level

But swagger-parser doesn't throw any errors when validating the schema.

const SwaggerParser = require('swagger-parser');

SwaggerParser.validate(script, {}, (err, api) => {...});
jaishirole commented 3 years ago

@lenchvolodymyr This is so due to no validations applied for OpenAPI v3. https://github.com/APIDevTools/swagger-parser/blob/fa54e0a030c0ca4d1abd090b77ce7d0dbb3205e1/lib/validators/spec.js#L17

lenchvolodymyr commented 3 years ago

@jaishirole thanks for the response, I see now. I would keep the issue open until it's implemented for OpenAPI

jaishirole commented 3 years ago

@lenchvolodymyr Sure.

jaishirole commented 3 years ago

@lenchvolodymyr This PR hopefully shall address this issue for OpenAPI v3: https://github.com/APIDevTools/swagger-parser/pull/179/files

lenchvolodymyr commented 3 years ago

@jaishirole nice, hope it will be merged soon. Thank you!

jurgen-kammcs commented 1 year ago

Any news on this?