使用项目最小项和最大长度生成 Swagger 代码



我想为数组内的字符串发布一个字符串数组,最小项为 2,最大长度为 50。 我这样设置我的招摇:

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

但是由于某种原因,在代码生成中,它只采用最小项而不考虑最大长度我可以键入 50+ 个字符并且它通过了

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

甚至有一些错误不起作用,例如minItems: and maxItems:同一列表不限制或代码未生成不会自动用于此行为。 @Size(最小=2,最大=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+Description

至少有两个不同的未解决的问题与此问题相关(假设您要生成 java 代码(:

https://github.com/OpenAPITools/openapi-generator/issues/10026 https://github.com/OpenAPITools/openapi-generator/issues/4947

即使是 swagger-api 代码生成器 (https://github.com/swagger-api/swagger-codegen( 也确实存在同样的问题。

恕我直言,一切都归结为胡须模板和无法使用 BeanValidation 2.0 功能的底层 Java 代码的问题,例如:

https://beanvalidation.org/2.0/spec/#constraintdeclarationvalidationprocess-containerelementconstraints

List<@NotNull @Size(max=20) String> searchTerms

最新更新