如何在 Helidon 应用程序中使用 Bean 验证?

How to use Bean Validation in a Helidon App?

我正在尝试使用 Helidon-MP 创建一个简单的 Rest Resource,但由于某些原因,当我在我的方法上添加 bean 验证注释时它不起作用。

@POST
public Response generatePlan(@Valid @ValidPlan JsonObject payload) {
   // some logic here
}

这是预期的行为吗?或者我应该添加一些依赖或配置吗?

我试图在文档中找到一些东西,但找不到。

谢谢


我最终按照@LairdNelson 的回答做了,并在我的 pom.xml 中添加了以下依赖项:

<dependency>
     <groupId>org.hibernate.validator</groupId>
     <artifactId>hibernate-validator</artifactId>
     <version>6.1.5.Final</version>
</dependency>
<dependency>
     <groupId>org.hibernate.validator</groupId>
     <artifactId>hibernate-validator-cdi</artifactId>
     <version>6.1.5.Final</version>
</dependency>
<dependency>
     <groupId>jakarta.el</groupId>
     <artifactId>jakarta.el-api</artifactId>
</dependency>
<dependency>
     <groupId>org.glassfish</groupId>
     <artifactId>jakarta.el</artifactId>
</dependency>

Bean 验证不是 MicroProfile 规范集的一部分,因此默认情况下它不是 Helidon MP 的一部分,Helidon MP 是一个 MicroProfile 实现。

您当然可以在编译或运行时类路径上添加 Bean Validation 的实现,前提是它是 CDI 可移植扩展(这是您向任何 MicroProfile 兼容实现添加任意功能的方式)。一种这样的便携式扩展是 Hibernate Validator-backed one。肯定还有其他人。