首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swagger Docs XOR

Swagger Docs XOR
EN

Stack Overflow用户
提问于 2016-01-11 13:21:47
回答 2查看 1K关注 0票数 4

我想知道是否可以在swagger.yaml/json中使用XOR,例如:

代码语言:javascript
复制
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成为必需的呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-27 17:01:23

条件属性不能建模,但您可以使用多态进行解决。您可以用third_property创建父模型third_property,并创建两个子模型(C1C2),一个(C1)使用first_property,另一个(C2)使用second_property。使用allOf关键字和一个discriminator字段,您将得到一个具有P+C1P+C2属性的模型。

参见组成和继承(多态性) 文档中的一章。

Swagger允许使用JSON的allOf属性组合和扩展模型定义,实际上提供了模型组合。allOf接受一个对象定义数组,这些定义是独立验证的,但它们共同组成一个对象。

提示:

当您的swagger编辑器使用allOf关键字报告以下错误时,不要感到困惑:不允许其他属性,但属性设置为

目前github上已经报告了一个bug,请参阅此链接

票数 5
EN

Stack Overflow用户

发布于 2021-10-05 14:35:17

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34722634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档