通过springboot搭建一个get接口,声明接口路径,请求参数,返回一个字符串。
答: 有两种校验框架,一个是Hibernate Validator
,还有一个是JSR(Java Specification Requests)
校验,后者比较常用,无需引入特殊的依赖。就例如我们现在有个Person类,希望名字不为空,性别是是数字最大值为2,而email必须为邮箱格式,那么我们就可以基于JSR
的注解进行说明。
public class Person {
@NotNull(message = "姓名不可为空")
@Size(max = 10, message = "姓名长度不可超过10位")
private String name;
@Max(value = 2, message = "性别最大值只能为2")
private int sex;
@Email(message = "邮箱格式不正确")
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
", email='" + email + '\'' +
'}';
}
}
当他作为controller
的requestBody
的参数时,用法如下所示
@PostMapping("/test/hello")
public void hello(@Valid Person person) {
logger.info("hello {}", person.getName());
}
假如我们想校验路径参数时,我们只需在Controller
上方加一个注解@Validated
,然后对于路径参数加入校验注解Valid
+校验规则注解
即可即可。
@GetMapping("/test/hello2/{id}")
public void hello2(@Valid @PathVariable("id") @Max(value = 5,message = "最大值为5") Integer id) {
logger.info("hello {}", id);
}
补充一下常见的一些校验注解:
1. @NotEmpty 被注释的字符串的不能为 null 也不能为空
2. @NotBlank 被注释的字符串非 null,并且必须包含一个非空白字符
3. @Null 被注释的元素必须为 null
4. @NotNull 被注释的元素必须不为 null
5. @AssertTrue 被注释的元素必须为 true
6. @AssertFalse 被注释的元素必须为 false
7. @Pattern(regex=,flag=)被注释的元素必须符合指定的正则表达式
8. @Email 被注释的元素必须是 Email 格式。
9. @Min(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
10. @Max(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
11. @DecimalMin(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
12. @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
13. @Size(max=, min=)被注释的元素的大小必须在指定的范围内
14. @Digits(integer, fraction)被注释的元素必须是一个数字,其值必须在可接受的范围内
15. @Past被注释的元素必须是一个过去的日期
16. @Future 被注释的元素必须是一个将来的日期
我可以为您解答关于通过Spring Boot编写GET接口的问题。
首先,您可以创建一个RestController类,并在此类中定义一个GET接口。这个接口可以使用@GetMapping注解来标识。
您可以通过RequestParam注解为接口添加查询参数。这个注解可以帮助您获取请求中的参数值,并将其与方法的参数进行绑定。
最后,您可以在接口的方法体中返回一个字符串作为响应。
下面是一个使用Spring Boot编写GET接口的示例代码:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(@RequestParam("name") String name, @RequestParam("age") int age) {
return "Name: " + name + ", Age: " + age;
}
}
在上述示例代码中,我们创建了一个名为HelloController的RestController类。这个类中的hello方法使用@GetMapping注解来声明了一个GET接口,路径为"/hello"。
hello方法的参数中使用了@RequestParam注解来获取名为"name"和"age"的查询参数,并将其与方法的参数进行绑定。
方法体中,我们将参数name和age拼接成一个字符串作为响应。
您可以通过访问http://localhost:8080/hello?name=tom&age=10来测试这个接口。在浏览器中打开这个链接,您将会看到返回的字符串结果。
希望以上信息能够对您有所帮助。如果您还有其他问题,请随时向我提问。
https://blog.csdn.net/xishining/category_11785836.html?spm=1001.2014.3001.5482
@RestController
@RequestMapping("/test")
public class TestControl {
@RequestMapping(value = "/checkLive", method = RequestMethod.GET)
public String testJson() {
return "test";
}
}