gpt4 book ai didi

java - Spring Boot 验证请求参数

转载 作者:行者123 更新时间:2023-12-02 10:10:53 25 4
gpt4 key购买 nike

我正在尝试学习 Spring Boot 并开发一个简单的 REST API,我开发了一个简单的计算器。

我有一个用@Service注释的服务类,它有一个简单的方法

public double calculate(String operation, double num1, double num2) {
...
}

我从 Controller 调用这个方法,就像

@GetMapping("/calculate")
public double calculate(@RequestParam(value = "op") String op,
@RequestParam(value = "num1") double num1,
@RequestParam(value = "num2") double num2) {

return calculatorService.calculate(op, num1, num2);
}

我想验证这些参数(num1和num2是否为数字并且所有参数都不应为空)。验证 Spring Boot 请求参数的最佳实践是什么?

最佳答案

这取决于您要执行的验证。

一种方法是对参数本身使用验证注释。

例如,@NotNull@Min@Max等。这些特定的可以在javax.java中找到。 validation:validation-api,但还有很多其他的(您可以构建自己的)。

@GetMapping("/calculate")
public double calculate(@RequestParam(value = "op") @NotNull String op,
@RequestParam(value = "num1") double num1,
@RequestParam(value = "num2") double num2) {

@NotNull 验证将确保 op 不为 null - 您可能需要使用 @NotEmpty@NotBlank 注释,以确保 op 的实际值分别具有长度 > 0 或修剪后的长度 > 0。

正如 Cristian Colorado 在下面的评论中指出的那样,如果 num1num2 不是有效的 double 值,Spring 将自动失败验证(或端点匹配)。

关于java - Spring Boot 验证请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55012417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com