
두번째 과제는 spring-mvc-2이고, CRUD를 간단하게 구현해보았다!
@RequestBody, @RequestParam, @PathVariable등을 사용해, 요청과 함께 데이터를 받고,
받은 데이터를 토대로 ResponseEntity를 사용해, 상태코드와 응답메세지를 보내주면 된다.
ResponseEntity는 Spring Framework에서 HTTP 응답을 세밀하게 제어할 수 있게 도와주는 도구이다.
HTTP상태코드, 헤더, 바디 등을 포함하며, 이를 통해 클라이언트에게 다양한 응답을 줄 수 있다.
//보통
return ResponseEntity.ok("response message");
//헤더 포함
return new ResponseEntity<>("response message", headers, HttpStatus.OK);
//Redirection도 가능 - 302 Found
return ResponseEntity.status(HttpStatus.FOUND).location(location).build();
반환된 body는 등록된 HttpMessageConverter에 의해 JSON 등으로 변환된다.
SpringMVC에서 HTTP 요청과 응답의 body를 변환하는 데 사용되는 인터페이스이다.
예를 들면, JSON 형식을 JAVA 객체로 변환하거나, 그 반대의 경우가 있다.
다양한 구현체가 있다.
MappingJackson2HttpMessageConverter - JSON 형식
MappingJackson2XmlHttpMessageConverter - XML 형식
StringHttpMessageConverter - 텍스트 형식
FormHttpMessageConverter - 폼 데이터 처리
ByteArrayHttpMessageConverter - 바이트 배열 데이터 처리 (파일 업로드 및 다운로드)
1xx : 클라이언트의 요청이 정상적으로 수신되었으며, 처리 중임을 나타냄.
2xx : 성공. 응답이 성공적으로 나갔음을 나타냄.
3xx : 리다이렉션. 보통 클라이언트가 다른 URI로 리다이렉션되도록 유도함.
4xx : 잘못된 클라이언트의 요청 때문에 서버가 요청을 처리할 수 없음을 나타냄.
5xx : 서버 측의 오류로 요청이 정삭적으로 처리되지 못함을 나타냄.
Create
Read
Update
Delete