如何指示在my_object中可以拥有property_1或property_2,但不能同时拥有两者?
my_object:
type: object
properties:
property_1:
type: string
property_2:
type: string
答案 0 :(得分:2)
在 OpenAPI 3.0 (openapi: 3.0.0
)中,可以使用oneOf
关键字定义互斥条件。此架构要求存在property_1
或property_2
,但不能同时存在:
my_object:
type: object
properties:
property_1:
type: string
property_2:
type: string
property_3:
type: string
oneOf:
- required: [property_1]
- required: [property_2]
如果必须存在这两个属性中的至少一个,请改用anyOf
。
如果您使用 OpenAPI 2.0 (swagger: "2.0"
),则它不支持oneOf
,因此只能在模式描述或属性描述中以语言形式记录此条件。
答案 1 :(得分:0)
您可能要切换到OpenAPI 3.0,该API支持oneOf关键字以定义互斥条件:
这是一个示例:
my_object:
type: object
properties:
property_1:
type: string
property_2:
type: integer
oneOf:
- required: [property_1]
- required: [property_2]