Swagger Editor shows the "Schema error: should NOT have additional properties" error for a path parameter
Solution 1
The error message is misleading. The actual error is that your path parameter is missing required: true
. Path parameters are always required, so remember to add required: true
to them.
Solution 2
Had the same problem. I accidentally mixed up the syntax from Swagger 2.0
with Openapi 3.0.x
. In Openapi 3.0.x
, definitions are redefined as components. In the online editor you can click on the button Edit > Convert to OpenAPI 3 to use Openapi 3.0.x
.
Read more about components here.
Remark:
OAS 3 is the latest version of the OpenAPI Specification.
Solution 3
For me the cause of the error was a missing a leading slash in the path (internal/resource
instead of /internal/resource
).
And yes the error message is extremely unhelpful.
Related videos on Youtube
Comments
-
Emanuel Ey about 2 years
I'm using http://editor.swagger.io to design an API and I get an error which I don't know how to address:
Schema error at paths['/employees/{employeeId}/roles'].get.parameters[0] should NOT have additional properties additionalProperty: type, format, name, in, description Jump to line 24
I have other endpoints defined in a similar way, and don't get this error. I wondered if I had some issue with indentation or unclosed quotes, but that doesn't seem to be the case. Google also did not seem to provide any useful results.
swagger: "2.0" info: description: Initial draft of the API specification version: '1.0' title: App 4.0 API host: api.com basePath: /v1 tags: - name: employees description: Employee management schemes: - https paths: /employees/{employeeId}/roles: get: tags: - employees summary: "Get a specific employee's roles" description: '' operationId: findEmployeeRoles produces: - application/json parameters: - name: employeeId <====== Line 24 in: path description: Id of employee whose roles we are fetching type: integer format: int64 responses: '200': description: successful operation schema: type: array items: $ref: '#/definitions/Role' '403': description: No permission to see employee roles '404': description: EmployeeId not found
Any Hints?
-
absay over 5 yearsI have
required: true
in my definition and I'm still getting that error. -
Mocas over 3 yearsIn my case, I had required true and still the same error, found that the issue was indentation of get misplaced
-
Wayne Conrad almost 3 yearsThe tip to use the online editor to get a better error message was key to solving my problem.
-
Akhha8 over 2 yearsyour link to editor.swagger.io works, better error messages, thanks!