티스토리 뷰

@RestController
용도로는 RESTful API 개발에 적합합니다. 클라이언트(예: 모바일 앱, 단일 페이지 애플리케이션)와 데이터를 JSON 형식으로 교환하는 경우에 사용됩니다.
반환타입으로는 메서드가 기본적으로 객체를 반환하며, 해당 객체는 자동으로 JSON 형식의 HTTP 응답 본문으로 변환됩니다.

@RestController

@RestController
@RequestMapping("/api/users")
public class UserController {
    private final UserService userService;

    public UserController(UserService userService) {
        this.userService = userService;
    }

    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userService.getUserById(id);
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.createUser(user);
    }
}

@Controller

@Controller
@RequestMapping("/users")
public class UserController {
    private final UserService userService;
    private final TemplateEngine templateEngine;

    public UserController(UserService userService, TemplateEngine templateEngine) {
        this.userService = userService;
        this.templateEngine = templateEngine;
    }

    @GetMapping
    public String getAllUsers(Model model) {
        List<User> users = userService.getAllUsers();
        model.addAttribute("users", users);
        return "users/list";
    }

    @GetMapping("/{id}")
    public String getUserById(@PathVariable Long id, Model model) {
        User user = userService.getUserById(id);
        model.addAttribute("user", user);
        return "users/details";
    }

    @GetMapping("/new")
    public String newUser(Model model) {
        model.addAttribute("user", new User());
        return "users/form";
    }

    @PostMapping
    public String createUser(@ModelAttribute User user, RedirectAttributes redirectAttributes) {
        User createdUser = userService.createUser(user);
        redirectAttributes.addFlashAttribute("message", "User created successfully.");
        return "redirect:/users/" + createdUser.getId();
    }
}

 

예시에서 @RestController 클래스는 RESTful API 엔드포인트를 제공하며, 메서드가 직접 객체를 반환합니다.
반면ㅇㅔ, @Controller 클래스는 보통의 웹 애플리케이션 개발을 위해 사용되며, 메서드가 String의 View 이름을 반환합니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함