Entwerfen einer API editor.swagger.io finde ich mich nicht in der Lage ein requestBody Attribut hinzufügen, erhalte eine Fehlermeldung kann ich nicht ansprechen:SwaggerUI/YAML - sollten nicht zusätzliche Eigenschaften additionalProperty haben: requestBody
Schema error at paths['/projects/{projectId}/user'].post
should NOT have additional properties
additionalProperty: requestBody
Jump to line 91
Ich verstehe nicht, was ich falsch mache, vor allem nach dem Blick auf die requestBody documentation. Die Forschung hat mir nichts anderes gebracht als die Tendenz zu Fehlern, die irreführend sind.
EDIT: Von was die Antworten hier gezeigt haben, sieht es so aus, als ob der Editor OpenAPI 2.0 verwenden soll, aber tatsächlich 3.0 erwartet, während Fehler für beide zurückgegeben werden. Ich würde etwas Hilfe verwenden, was zu verwenden, da ich eine Zeile am Anfang des Dokuments enthalten habe. Beim Testen mit openapi: 3.0.0
, wie von @Mike in seiner Antwort gezeigt, bekomme ich nur mehr Fehler über erlaubte zusätzliche Eigenschaften.
Hier ist, was den Fehler erzeugt, Zeile 91 ist .
/projects/{projectId}/user:
post:
tags:
- projects
summary: Modify project user.
operationId: modifyProjectUser
parameters:
- name: projectId
in: path
description: ID of the project
required: true
type: integer
format: int32
requestBody:
content:
application/json:
schema:
$ref: '#/definitions/User'
responses:
"200":
description: Successful operation
schema:
type: array
items:
$ref: "#/definitions/User"
security:
- api_key: []
Auf welcher Version von OpenAPI basiert es? Der von Ihnen bereitgestellte Dokumentationslink besagt, dass für OpenAPI v2 requestBody nicht unterstützt wird und dass es body- und formData-Parameter verwendet. (siehe hier zum Beispiel: https://swagger.io/docs/specification/2-0/describing-request-body/). Können Sie überprüfen, welche Version Sie verwenden/die editor.swagger.io verwendet? – refreshfr
Sie mischen 2.0 und 3.0 Syntax. Die 2.0 Spezifikationen nutzen 'swagger: '2.0'', 3.0 Spezifikationen verwenden' openapi: 3.0.0'. – Helen
@refreshfr Wie in https://swagger.io/specification/ angegeben, verwendet Swagger 2.0 OAS 3.0 und macht 'requestBody' somit nutzbar. Wenn ich versuche, 'in: body' zu verwenden, erhalte ich den folgenden Fehler: ** allowedValues: header, formData, query, path **. – ilomax