如何解决Swagger 2.0中的条件参数重复键
翻译为宠物多态性示例:
因此,有多个请求要传递取决于宠物类型的参数。如果参数始终相同:没问题。我可以生成文档,并获得一个带有不同参数的值cat / dog的下拉菜单。 但是在下一步中,我需要为每个请求使用不同的参数。因此,不仅定义了“猫与狗的宠物”的定义,还定义了例如“猫和狗”具有不同参数的WildAnimal。
- 如果我为“猫”和“狗”创建了多个定义,则会出现“重复键”错误。
- 如果我将第二组“猫”和“狗”重命名为“ WildCat”和“ WildDog”,则petType字符串也将更改为“ WildCat”和“ WildDog”。
- 如果我尝试创建“动物”之类的“超定义”,并使用不同类型的动物(如“宠物”和“野生动物”)继承allAll的所有参数,则我不知道将鉴别符放在何处。如果在超级定义中,则在下拉菜单中会获得“ Pet”和“ WildAnimal”作为其他petType。
我找不到内联对cat / dog的几个定义的可能性。我找不到将WildCat和WildDog的“显示名称”更改为Cat和Dog的可能性(因此,定义名称将与实际的petType值不同)。我在这里几乎没有想法。
其他信息:我无法转换为3.0,因为我需要在GET请求中使用requestBody(不是通过选择)。
Pet:
type: object
discriminator: petType
properties:
name:
type: string
petType:
type: string
required:
- name
- petType
Cat:
description: A representation of a cat
allOf:
- $ref: '#/definitions/Pet'
- type: object
properties:
huntingSkill:
type: string
description: The measured skill for hunting
default: lazy
enum:
- clueless
- lazy
- adventurous
- aggressive
required:
- huntingSkill
Dog:
description: A representation of a dog
allOf:
- $ref: '#/definitions/Pet'
- type: object
properties:
packSize:
type: integer
format: int32
description: the size of the pack the dog is from
default: 0
minimum: 0
required:
- packSize
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。