oneOf in Swagger-schema funktioniert nicht
Möchte ich definieren PaymentMethod
als unten. Ist oneOf unterstützt stolzieren.yaml?
PaymentMethod:
oneOf:
- $ref: '#/definitions/NewPaymentMethod'
- $ref: '#/definitions/ExistPaymentMethod'
Den ExistPaymentMethod
haben nur id, und cardNumber
wo NewPaymentMethod
keine id
, aber alle anderen details, wie z.B. cardNumber
, cardholderName
, cardholderAddress
etc.
Du musst angemeldet sein, um einen Kommentar abzugeben.
oneOf
unterstützt Open API version 3 (openapi: 3.0.0
), aber nicht in Fors version 2 (swagger: '2.0'
).GitHub issue ref: https://github.com/OAI/OpenAPI-Specification/issues/333
Für eine Liste von änderungen in Open API 3.0 im Vergleich zu 2.0, siehe: https://blog.readme.io/an-example-filled-guide-to-swagger-3-2/
Was Swagger nutzt, ist nur inspiriert von der JSON-Schema. Sie haben nicht abgewichen zu viel von der JSON-Schema, aber Sie lassen einige Dinge, einige Dinge hinzufügen und ändern Sie einige Verhaltensweisen. Eines der Dinge, die Swagger verlässt, ist
oneOf
.Mehr details können an gefunden werden http://swagger.io/specification/#schemaObject
oneOf
wird nun unterstützt, in Open API 3.0, wie bereits in Evan Torkos' Antwort.OneOf, anyOf und andere ähnliche Richtlinien werden nicht unterstützt swagger 2.0, aber unterstützt Open-API-3.0-Spezifikationen.
Müssen Sie konvertieren Sie Ihre Swagger 2.0-Datei zu Öffnen 3.0-API-Datei.
Hier ist der link -
https://blog.runscope.com/posts/tutorial-upgrading-swagger-2-api-definition-to-openapi-3
Hier ist noch ein nützlicher link -
https://github.com/swagger-api/swagger-ui/issues/3803