REST 란?
Request를 보내고 Request에 대한 Response를 받는 것으로 두 서버 사이의 Transaction을 맞추는 통신 방식
Request를 보낸 Thread는 Response가 도착하기 전까지는 아무 것도 하지 못하는 Block 상태가 됨을 의미
Request1 -> Response1, Request -> Response2
요청과 응답값의 순서를 보장하고, 보낸 요청에 대한 처리 결과 값을 보장받을 수 있기 때문에
Response에 대한 처리 결과를 보장받고 처리해야 되는 서비스에 적합
@RequestBody
어노테이션과 @ResponseBody
어노테이션이 각각 HTTP 요청 바디를 자바 객체로 변환하고, 자바 객체를 다시 HTTP 응답 바디로 변환@ResponseBody
가 붙은 파라미터에는 HTTP 요청의 본문 body 부분이 그대로 전달$(document).ready(function () {
$('#like').on('click', function () {
$.ajax({
type: "post",
url: "/note/noteLike",
data: {
"noteId": $('#noteId').val()
},
success: function (result) {
if (result == "TRUE") {
$('#like').css('color', 'red');
var likeNum = $('#likeNum').text();
likeNum *= 1;
$('#likeNum').text(++likeNum);
} else {
$('#like').css('color', 'black');
var likeNum = $('#likeNum').text();
likeNum *= 1;
$('#likeNum').text(--likeNum);
}
},
error: function () {
alert('오류!')
},
});
});
});
Ajax / @ResponseBody
사용success:function(result){
// result가 ArrayList를 받음 : 배열
// 배열 처리 (복잡)
}
@ResponseBody
없이 뷰 페이지 반환하고<div id=”searchResultBox”></div>
$(‘#searchResultBox’).html(result);
<dependency>
추가jackson-databind
소스코드
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.3</version>
</dependency>