我想定义PaymentMethod如下。 swagger.yaml是否支持oneOf?

PaymentMethod:
      oneOf:
        - $ref: '#/definitions/NewPaymentMethod'
        - $ref: '#/definitions/ExistPaymentMethod'


ExistPaymentMethod仅具有id,而cardNumber其中NewPaymentMethod没有id,但所有其他详细信息(例如cardNumbercardholderNamecardholderAddress等。

最佳答案

OpenAPI版本3(oneOf)支持openapi: 3.0.0,但是Swagger版本2(swagger: '2.0')不支持。

PaymentMethod:
  oneOf:
    - $ref: '#/components/schemas/NewPaymentMethod'
    - $ref: '#/components/schemas/ExistPaymentMethod'


GitHub问题编号:https://github.com/OAI/OpenAPI-Specification/issues/333

有关OpenAPI 3.0与2.0相比的更改列表,请参见:https://blog.readme.io/an-example-filled-guide-to-swagger-3-2/

08-06 20:56