为 RESTful 服务实现验证2025年1月17日 | 阅读时长:4分钟 验证是所有服务的常见需求。我们将讨论 Java Validation API,以便在我们的 bean 文件中添加验证。当我们收到创建用户的请求时,我们应该验证其内容。如果无效,我们应该返回正确的响应。 让我们看看如何验证请求。 步骤 1: 打开 UserResource.java 文件。 步骤 2: 添加 @Valid 注解。它是一个 Javax validation API。它的默认 classpath 是 spring-boot-starter-web。 UserResource.java 现在我们将在 User 类的 name 和 date of birth 上添加验证。假设 name 应该至少有五个字符,并且出生日期应该在过去,而不是现在。 步骤 3: 打开 User.java 文件。 步骤 4: 在 name 变量的正上方添加 @Size(min=5) 注解。 步骤 5: 在 dob 变量的正上方添加 @Past 注解。 User.java 步骤 5: 打开 Rest 客户端 Postman 并发送一个带有新用户名 Tony k 的 POST 请求。它返回 状态:201 Created。 ![]() 现在我们发送另一个 POST 请求。但是名称应少于五个字符。它返回 状态:400 Bad Request。 ![]() 当我们创建 RESTful 服务时,我们需要考虑消费者如何知道什么是错误的。为了解决这个问题,我们将添加一个方法 handleMethodArgumentNotValid(),该方法在 ResponseEntityExceptionHandler 类中定义。这是一个在发生错误请求时触发的方法。 步骤 6: 将上述方法复制并粘贴到 CustomizedResponseEntityExceptionHandler.java 文件中。 步骤 7: 通过添加注解 @Override 来覆盖该方法。 CustomizedResponseEntityExceptionHandler.java 步骤 8: 现在,我们通过 Postman 发送一个 POST 请求。它返回异常结构,其中包含消息 Validation failed for argument 和其他详细信息。 ![]() 用户很难理解该消息。 因此,现在我们将使用字符串 Validation Failed 自定义消息,而不是获取消息。 步骤 9: 再次发送一个 POST 请求。 它返回了我们自定义的消息。 ![]() 这对消费者可能有用。 现在我们再次自定义消息,使其更具错误性。 步骤 10: 打开 User.java 文件并在 @Size 注解中添加一个属性 message="Name should have at least 5 characters"。 步骤 11: 再次发送一个 POST 请求。 它返回了我们指定的更具体的异常。 ![]() 我们可以通过遵循 BindingResult 接口来进一步自定义异常。 异常消息种类繁多。 validation-api-2.0.1.Final.jar 中定义了以下验证类。 ![]() |
我们请求您订阅我们的新闻通讯以获取最新更新。