Этот вопрос проверяет знание REST-подхода и понимание того, как в Spring обрабатываются разные типы HTTP-запросов.
Для обработки HTTP-запросов в Spring используются специальные аннотации контроллеров и методов. Они позволяют принимать данные из URL, тела запроса и заголовков. Каждая аннотация отвечает за конкретный тип взаимодействия с клиентом. Это основа REST-API в Spring.
Spring предоставляет набор аннотаций, которые делают обработку HTTP-запросов простой и наглядной.
Определение:
Аннотации контроллеров указывают, что класс обрабатывает HTTP-запросы.
@Controller — используется для MVC (возвращает представления)
@RestController — используется для REST API (возвращает JSON)
@RestController
public class UserController {
}
Для каждого HTTP-метода есть отдельная аннотация:
@GetMapping — GET
@PostMapping — POST
@PutMapping — PUT
@DeleteMapping — DELETE
@PatchMapping — PATCH
@GetMapping("/users")
public List<User> getUsers() {
return userService.findAll();
}
Для получения данных из запроса используются:
@PathVariable — параметры пути
@RequestParam — query-параметры
@RequestBody — тело запроса
@RequestHeader — HTTP-заголовки
@PostMapping("/users")
public User createUser(@RequestBody User user) {
return userService.save(user);
}
Аннотации для обработки HTTP-запросов — это основа REST-контроллеров в Spring. Они позволяют чётко описать контракт API и делают код читаемым и понятным.