Sobes.tech
Назад к вопросам
Junior — Middle
66

Объясните, что означает аннотация @RestController в контексте разработки REST API в Spring

Компании, где спрашивали
Ви6 Сервисес

Ответ от нейросети

sobes.tech AI

Аннотация @RestController в Spring — это специализированный вариант @Controller, который упрощает создание REST API. Она объединяет в себе:

  • @Controller — указывает, что класс является контроллером для обработки HTTP-запросов.
  • @ResponseBody — автоматически сериализует возвращаемые методы объекты в JSON (или другой формат), отправляя их в тело HTTP-ответа.

То есть, используя @RestController, не нужно отдельно писать @ResponseBody для каждого метода. Это удобно для создания API, где контроллеры возвращают данные, а не представления (views).

Пример:

@RestController
public class UserController {
    @GetMapping("/users/{id}")
    public User getUser(@PathVariable Long id) {
        // возвращает объект User, который автоматически преобразуется в JSON
        return userService.findById(id);
    }
}