JSON 응답과 요청 처리
REST(Representational State Transfer)
-JSON(JavaScript Object Notation) : 자바스크립트 객체 표기법
-{"이름":"값","이름":"값", ..}
jackson-databind
jackson-datatype-jsr310 - Date & Time API - java.time 패키지
ObjectMapper
: 자바 객체 -> JSON 문자열 - writeObjectAsString(자바 객체)
JSON 문자열 -> 자바 객체 -> readValue(..)
-자바 객체(getter가 있는) : JSON 문자열로 자바 객체 변환 후 출력
-응답 헤더 : Content-Type: application/json
-반환 값이 없는 경우 : 응답 body가 비어있음
-문자열 : 문자열 그대로 출력이 된다.
-응답 헤더 : Content-Type: text/plain
-@Controller로 설정된 일반 컨트롤러 메서드를 Rest로 응답하게 만들어 주는 애노테이션
-자바 객체, 문자열, 반환값 없음..
-JSON 변환시 제외
커맨드 객체 변환 기준 - Content-Type: application/x-www-form-urlencoded;
커맨드 객체 앞에 @RequestBody를 추가하면
Content-Type: application/json으로 판단하고 데이터 변환
POST
PUT
PATCH
-POSTMAN: REST 테스트
-ARC(Advanced Rest Clietn) : REST 테스트
-응답 헤더, 바디 쪽을 상세하게 설정하는 경우
바디, 데이터, 응답코드 설정 가능
: 응답 상태 코드 + 출력 데이터
: 응답 상태 코드/ 출력 데이터 X
JSON -> 형식을 고정해서 응답
ARC
Errors
getFieldErrors() : 필드별 전체 에러 정보 (rejectValue(..))
getGlobalErrors() : 커맨드 객체 자체 에러 정보 (reject(...)..)
getAllErrors() : 전체 에러 정보
<T> ResponseEntity<T> getForEntity(...)
응답쪽 정보가 필요할 때
<T> T getForObject
<T> ResponseEntity<T> postForEntity
<T> T postForObject
<T> ResponseEntity<T> exchange(...)
HttpEntity -> 헤더, 바디 등 함께 전송시 필요