Ich benutze http://editor.swagger.io , um eine API zu entwerfen und erhalte eine Fehlermeldung, die ich nicht ansprechen kann:
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
Ich habe andere Endpunkte auf ähnliche Weise definiert und bekomme diesen Fehler nicht. Ich fragte mich, ob ich Probleme mit Einrückungen oder nicht geschlossenen Zitaten hatte, aber das scheint nicht der Fall zu sein. Google schien auch keine nützlichen Ergebnisse zu liefern.
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
Irgendwelche Hinweise?
Die Fehlermeldung ist irreführend. Der tatsächliche Fehler ist, dass Ihr Pfadparameter required: true
fehlt. Pfadparameter sind immer erforderlich. Denken Sie daran, ihnen required: true
hinzuzufügen.
Die Syntax erfordert möglicherweise zwei Parameter, wie von Helen erwähnt required: true
benötigt, also type:DataType
. Der Fehler ist irreführend.