我们在我们的应用程序中使用 Camel,所以我最初认为这是 Camel 插件的问题,但这是我用 Java 和 OAS 版本测试过的:
- camel-restdsl-swagger-plugin(Java 8、Java 11、OAS v2.0)
- camel-restdsl-openapi-plugin (Java 11, OAS v3.0)
- swagger-codegen-maven-plugin (Java 11, OAS v3.0)
- Swagger Editor Demo(OAS v2.0、OAS v3.0、生成Java客户端)
- swagger-codegen-maven-plugin 示例(Java 11,OAS v2.0)
我们现在正在针对 Java 11 进行构建,但在之前的版本中我们使用了 Java 8。我们已经使用 OAS v2.0 进行了测试,现在我已经升级到了 OAS v3.0。
这些尝试都没有奏效,尽管它们似乎应该有,基于这个 Github 问题,暗示验证适用于 Java:https ://github.com/swagger-api/swagger-codegen/issues/2663 。
在最后的 2 次测试中,我为各种属性添加了最大值和模式,构建了项目或生成了 Java 客户端,并在其中一个模型中看到了这一点(Order.java 为 snip):https:// pasteboard .co/JlVTLtL.png。
同样的问题反映在我们的代码中,我们的规范基于 Swagger 编辑器是有效的。我刚刚将我们的规范放到了编辑器中。
如何让验证显示出来?我无法粘贴整个规范,但这是我们其中一个模型的编辑部分。这些验证都没有在代码中强制执行。最大值和最小值出现在评论中,并且从未提及该模式。
AnExample:
description: >
The cow goes moo
type: object
properties:
id:
description: >
Uniquely identify the cow
type: string
pattern: "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[0-9a-dA-D][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000"
height:
description: >
How tall the cow is, counted in beagles
type: number
format: int64
minimum: 1
maximum: 60