SwaggerUI/YAML - sollte NICHT über zusätzliche Eigenschaften additionalProperty: requestBody
Entwurf einer API mithilfe - editor.stolzieren.io ich finde mich nicht in der Lage, fügen Sie eine requestBody Attribut, immer ein Fehler ich kann keine Adresse:
Schema error at paths['/projects/{projectId}/user'].post
should NOT have additional properties
additionalProperty: requestBody
Jump to line 91
Verstehe ich nicht, was ich falsch mache, vor allem nach einem Blick auf die requestBody Dokumentation. Forschung hat mich nichts anderes als die Tendenz, für die Fehler zu sein, irreführend.
EDIT: Von was die Antworten hier gezeigt haben, sieht es aus wie der editor verwenden soll Open API 2.0, aber eigentlich erwartet 3.0, während der Rückkehr von Fehlern für beide. Ich würde etwas Hilfe gebrauchen, was zu verwenden, da habe ich einen
swagger: "2.0"
Zeile am Anfang des Dokuments.
Beim testen mit openapi: 3.0.0
wie @Mike in seiner Antwort, bekomme ich nur mehr Fehlermeldungen zu dürfen zusätzliche Eigenschaften.
Hier ist, was den Fehler generiert, Linie 91 wird post:
.
/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: []
Sie sind Misch-2.0-und 3.0-syntax. 2.0 Spezifikationen verwenden
swagger: '2.0'
, 3.0-Spezifikationen verwenden openapi: 3.0.0
.Wie bereits in der stolzieren.io/Spezifikation, Swagger 2.0 verwendet OAS 3.0, daher macht
requestBody
nutzbar. Darüber hinaus, wenn Sie versuchen, zu verwenden in: body
, bekomme ich die folgende Fehlermeldung: allowedValues: header, formData, query, path.also, was sollte ich in diesem Fall ? Fors Dokumentation gibt mir immer noch requestBody, und
in: body
funktioniert nicht. Ich bin in der Tat verwirrt.stolzieren.io/Spezifikation ist der 3.0 spec. Der 2.0-Spezifikation ist github.com/OAI/OpenAPI-Specification/blob/master/versions/....
InformationsquelleAutor ilomax | 2017-12-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bekam Erklärungen von einer externen Quelle, also hier ist was ich gelernt habe:
Angabe
swagger: 2.0
bedeutet auch, dass die Open API Spezifikation Version 2.0.0 erwartet der editor, während ich dachte, es verwendet, OAS 3.Ich bin immer noch unsicher darüber, warum
in: body
funktionierte nicht an Erster Stelle, aber ich habe Anführungszeichen um"body"
gemacht, was den Fehler verschwinden. Dann habe ich versucht, entfernen die Anführungszeichen, und es funktionierte gut.Editor scheint nicht sehr zuverlässig, wenn es um die Fehler-Berichterstattung.
InformationsquelleAutor ilomax
Diese Fehlermeldung sah vertraut. Versuchen Sie, ein schema: unter Ihrer parameter ist erforderlich: Linie, dann rückt die Art: und format: Leinen.
Da ich noch nicht meine eigene SwaggerUI server. Ich nahm Ihr code-snippet ein, und klebte es in SwaggerHub. Dann entfernte ich das $ref: Zeilen nur zu einer weiteren Vereinfachung der Codebasis. Hier ist ein screenshot von der Fehler-freien Ergebnis.
Das hat nicht wirklich helfen. Es zeigen tatsächlich mehr Fehler. Wenn Sie nichts dagegen haben, nehmen Sie einen Blick an screenshot, sehen Sie den gesamten block sowie den genauen Fehler.
Sollte das nicht $ref: auf der Linie 109 eingerückt werden?...
Sollte es in der Tat. Vielen Dank für bemerken !
InformationsquelleAutor Mike