[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-spring-v-chyom-raznitsa-mezhdu-controller-i-restcontroller":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},641,"v-chyom-raznitsa-mezhdu-controller-i-restcontroller",14,"spring","Spring","🌱","В чём разница между @Controller и @RestController?","`@Controller` -- аннотация для контроллеров, возвращающих представления (HTML через шаблонизаторы). `@RestController` -- комбинация `@Controller` + `@ResponseBody`, где каждый метод автоматически сериализует объект в тело HTTP-ответа (JSON по умолчанию).\n\n| Аспект | @Controller | @RestController |\n|--------|-------------|-----------------|\n| Возвращает | Имя view (String) | Объект (-> JSON) |\n| @ResponseBody | Нужно добавить явно | Включено по умолчанию |\n| Применение | SSR (Thymeleaf, JSP) | REST API |\n| Content-Type | text\u002Fhtml | application\u002Fjson |\n\n```java\n@Controller\npublic class PageController {\n    @GetMapping(\"\u002Fusers\")\n    public String usersPage(Model model) {\n        model.addAttribute(\"users\", userService.findAll());\n        return \"users\"; \u002F\u002F имя шаблона templates\u002Fusers.html\n    }\n}\n\n@RestController\n@RequestMapping(\"\u002Fapi\u002Fusers\")\npublic class UserRestController {\n    @GetMapping\n    public List\u003CUserDto> getAllUsers() {\n        return userService.findAll(); \u002F\u002F автоматически в JSON\n    }\n}\n```\n\n> **На собеседовании:** `@RestController` = `@Controller` + `@ResponseBody` на каждом методе. Частая ошибка -- использовать `@RestController` и пытаться вернуть имя view (Spring вернёт строку как JSON, а не отрендерит шаблон).","","junior",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":22,"featuredSnippetReady":23},"В чём разница между аутентификацией и авторизацией? — Gymterview","Аутентификация (Authentication) -- проверка личности пользователя, ответ на вопрос «Кто ты?». Авторизация (Authorization) -- проверка прав доступа, ответ на воп","Аутентификация (Authentication) -- проверка личности пользователя, ответ на вопрос «Кто ты?». Авторизация (Authorization",[7,13],"Аутентификация (Authentication) -- проверка личности пользователя, ответ на вопрос «Кто ты?». Авторизация (Authorization) -- проверка прав доступа, ответ на вопрос «Что тебе разрешено?».",true]