要求数组在 Swagger 架构对象定义中至少包含一个元素 [英] Require array to contain at least one element in Swagger Schema Object definition
本文介绍了要求数组在 Swagger 架构对象定义中至少包含一个元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的 swagger.yaml
中有这样的架构对象定义:
I'm having a Schema Object definition like this in my swagger.yaml
:
User:
type: object
properties:
username:
type: string
description: the user name
colors:
type: array
items: {
type: string,
enum: [ "red", "blue", "green" ]
}
description: user must have one or more colors associated
required:
- username
- colors
然而,生成的服务器仍然愉快地接受使用这个架构对象作为不包含任何colors
字段的请求体参数的POST请求.
However, the generated server still happily accepts POST requests using this schema object as required body parameter that do not contain any colors
field.
我能否以一种方式配置 Swagger,即 User
架构对象中始终需要 color
字段,并且理想情况下还必须包含枚举中的至少一个或多个项目?
Can I configure Swagger in a way that the color
field is always required in a User
schema object and ideally also must contain at least one or more items from the enum?
推荐答案
使用 minItems: 1
.此外,您可以在数组中强制执行 uniqueItems
.
Use minItems: 1
. Additionally you can enforce uniqueItems
within the array.
colors:
type: array
minItems: 1
uniqueItems: true
items:
type: string
enum: [ "red", "blue", "green" ]
这篇关于要求数组在 Swagger 架构对象定义中至少包含一个元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文