首页 > 解决方案 > 使用 minItems 和 maxLength 为项目生成 Swagger 代码

问题描述

我想为数组中的字符串发布一个字符串数组,其中最小项为 2,最大长度为 50。我这样大摇大摆:

"values":{
"desciption":"values of file",
"type":"array",
"items":{
   "type":"string",
   "maxLength": 50
},
"minItems": 2
}

但由于代码生成中的某种原因,它只需要 minItems 而不考虑 maxLength 我可以输入 50+ 个字符并且它通过

标签: swaggerswagger-2.0swagger-codegen

解决方案


我发现您在 yml 中的定义是正确的,甚至没有正确生成代码。因此,我建议为此提出一个单独的错误也将帮助其他用户。

即使有一些错误不起作用,例如minItems: and maxItems:对于同一个列表没有限制或代码未生成也不会自动针对此行为。@Size(min=2,max=4) 即

       values:
          description: values of file
          type: array
          items:
            type: string
            maxLength: 20
          minItems: 2
          maxItems: 4

所以我建议你通过给定的链接提出一个单独的错误: https ://github.com/OpenAPITools/openapi-generator/issues/new?assignees=&labels=Issue%3A+Bug&template=bug_report.md&title=%5BBUG%5D +描述


推荐阅读