предисловие
В разработке мы часто сталкиваемся с самыми разными способами передачи параметров. Здесь давайте суммируем способы принятия параметров, которые можно использовать в springboot.
URL-параметры
Этот параметр в сочетании с URL-адресом выглядит такURL/{идентификатор}. В springboot, принимая такие параметры, можно использоватьАннотация PathVariable, как показано ниже:
@GetMapping(value = "/param/{id}")
public Object pathVariable(@PathVariable(value = "id") Integer id) {
return id;
}
контрольная работа
тип параметра формы
Этот параметр находится в форме: name = xxx & age = xxx. Он может быть разделен на URL-адрес, такой как метод получения, или он может быть помещен в HTTP-запрос. Такие параметры могут быть приняты с использованием Annotation RequestParam, например:
@PostMapping(value = "/param")
public Object queryString(@RequestParam(value = "username") String name,
String remark) {
Map<String, String> map = new HashMap<>();
map.put("name", name);
map.put("remark", remark);
return map;
}
Здесь используется аннотация RequestParam, чтобы принять параметр имени пользователя в имя, а примечание второго параметра не использует аннотацию RequestParam, потому что, если параметры запроса и параметры метода согласованы, аннотацию RequestParam можно опустить.
Тест выглядит следующим образом:
Первый: поместите параметры запроса прямо в URL
Параметры запроса размещаются на url
Второй: параметры запроса размещаются на теле
Нажмите на код почтальона, чтобы проверить формат curl, видно, что он имеет вид name=xxx&age=xxx
json-тип
Этот тип в настоящее время наиболее популярен, в стиле restful почти все системы в настоящее время используют json для передачи данных.
Сначала мы определяем класс Person, который используется в качестве класса, принимающего параметры, где имя поля должно соответствовать ключу параметра json.
public static class Person {
private String username;
private String remark;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
Мы можем использовать аннотацию RequestBody для принятия параметров json.
@PostMapping(value = "/param/json")
public Object json(@RequestBody Person person) {
return person;
}
контрольная работа
Если мы не хотим определять объект для принятия параметров, мы можем использовать Map для принятия.
@PostMapping(value = "/param/map")
public Object map(@RequestBody Map data) {
System.out.println(data.get("username"));
System.out.println(data.get("remark"));
return data;
}
принять заголовок запроса
Некоторые интерфейсы требуют передачи параметров в заголовках запроса, например системы, использующие аутентификацию с помощью токена.Токен обычно передается в заголовке запроса или в файле cookie (файл cookie также находится в заголовке запроса). Мы можем использовать аннотацию RequestHeader для принятия следующим образом:
@GetMapping(value = "/param/header")
public Object header(@RequestHeader(value = "token") String token) {
return token;
}
Принять параметр cookie
Примите параметры cookie, вы можете использовать аннотацию CookieValue, чтобы принять
@GetMapping(value = "/param/cookie")
public Object cookie(@CookieValue(name = "token") String token) {
return token;
}