- 공통점 : 웹 프로토콜을 사용하여 요청을 받는다.
- 차이점
- @RestController
- 주로 JSON,XML등의 응답 데이터를 반환하는 Back-end API를 작성
- @ResponseBody가 포함되어있어서 반환되는 값을 데이터 자체가 반환된다
- 웹 애플리케이션에서 일부분의 서비스를 구현할 때 사용.
- @Controller
- 주로 HTML페이지를 랜더링하는 JSP(뷰)를 반환
- 클라이언트가 웹 브라우저에서 직접 접근할 수 있는 URL을 제공
- @PathVariable : 요청 URl의 가장 마지막 URI만 잘라내는 annotation
- 예 ) - AJAX GET방식
- 예 ) - Back-end API
```
@GetMapping("/user/{userid}")
public String method(@PathVariable String userId){
조회작업을 JSONObject반환
}
```
- 예 ) - AJAX POST방식
- 예 ) - Back-end API
```
@PostMapping("/user/{userid}")
public String method(@RequestParam String userId){
조회작업을 JSONObject반환
}
```
- 예 ) - AJAX PUT방식
- 요청 URL =>
$.ajax({
url:"/user/접속자아이디",
type:"PUT",
dataType:"JSON",
success:function(jsonObj){
입력된 아이디에 해당하는 자원 변경
}
})
- 예 ) - Back-end API
```
@PutMapping("/user/{userid}")
public String method(@PathVariable String userId, 변경할 값,,,,){
입력된 아이디
}
```
- 예 ) - AJAX DELETE방식
- 예 ) - Back-end API
@DeleteMapping("/user/{userid}")
public String method(@PathVariable String userId,삭제할 기준의 다른값,){
삭제 작업
결과 JSONObject
}