◆ PART · REST

@RestController

REST API와 마무리 — 읽기 자료

📍 지금 어디를 만지고 있나요?
브라우저
REST API와 마무리
DB

핵심 용어

@RestController@Controller + @ResponseBody 합친 어노테이션.
@ResponseBody메서드 반환값을 응답 바디로 직접 보냄. JSON 자동 변환.

1. 문제

전 차시까지의 답답함

@Controller 와 @RestController 의 차이가 뭔지?

2. 새 도구

@RestController = @Controller + @ResponseBody

반환값을 JSP 가 아니라 JSON 으로. View 가 흐름에서 빠짐.

3. 코드

// @Controller (기존) — com.smhrd.controller
@Controller
public class BoardController {
    @GetMapping("/board/{num}")
    public String view(@PathVariable int num, Model model) {
        model.addAttribute("board", service.selectOne(num));
        return "board/view";    // ← JSP ViewName
    }
}

// @RestController (REST) — com.smhrd.controller
@RestController
public class BoardApiController {
    @GetMapping("/api/boards/{num}")
    public Board view(@PathVariable int num) {
        return service.selectOne(num);   // ← 그대로 JSON 응답
    }
}

4. 정리

5. Before / After

전 차시 끝

@Controller 와 @RestController 의 차이가 뭔지?

이번 차시 끝

두 어노테이션의 결정적 차이를 안다.