我想知道是否可以在swagger.yaml/json中使用XOR,例如:
PostableEntity:
properties:
first_property:
type: string
second_property:
type: string
minLength: 1
description: foo
third_property:
type: number
required:
- third_property现在,如果没有设置first_property,那么如何才能使second_property成为必需的呢?
发布于 2016-01-27 17:01:23
条件属性不能建模,但您可以使用多态进行解决。您可以用third_property创建父模型third_property,并创建两个子模型(C1和C2),一个(C1)使用first_property,另一个(C2)使用second_property。使用allOf关键字和一个discriminator字段,您将得到一个具有P+C1或P+C2属性的模型。
参见组成和继承(多态性) 文档中的一章。
Swagger允许使用JSON的allOf属性组合和扩展模型定义,实际上提供了模型组合。allOf接受一个对象定义数组,这些定义是独立验证的,但它们共同组成一个对象。
提示:
当您的swagger编辑器使用allOf关键字报告以下错误时,不要感到困惑:不允许其他属性,但属性设置为
目前github上已经报告了一个bug,请参阅此链接。
发布于 2021-10-05 14:35:17
https://stackoverflow.com/questions/34722634
复制相似问题