11.1 REST API의 동작 이해하기
💡 복습!
- 클라이언트가 보내는 HTTP 요청 메시지
- 시작 라인 : 요청 라인 (PATCH /post/1 HTTP/1.1)
- 헤더 : Content-Length, Content-Type, Host
- 본문 : JSON 데이터 내용
- 응답 메시지
- 시작 라인 : 상태 라인(HTTP/1.1 200)
- 헤더 : date, Content-Type, charset ..etc
- 본문 : JSON 데이터 내용
- 상태 코드(100~500번대까지 5개 그룹으로 나뉘어짐)
- 요청 성공(HttpStatus.OK) : 200
- 데이터 생성 완료 (HttpStatus.CREATED): 201
- 요청한 정보 찾을 수 없음 : 404
- 서버 오류 : 500
- JSON은 키와 값의 쌍으로 이룸!
- 아래와 같이 또 다른 JSON 데이터와 배열 사용 가능
address : {
"street" : "Nambu Street 151",
"suite" : "Central Villat 301",
...
},
"likes" : ["singing", "jogging", "writing"]
- REST : HTTP URL로 서버의 자원을 명시하고, HTTP 메서드(POST, GET, PATCH/PUT, DELETE)로 해당 자원에 대해 CRUD하는 것을 말함
- API : 클라이언트가 서버의 자원을 요청할 수 있도록 서버에서 제공하는 인터페이스
11.2 REST API의 구현 과정
- REST API로 요청과 응답을 주고 받을 때는 REST 컨트롤러(@RestController)를 사용
- 응답할 때 적절한 상태 코드를 반환하기 위해 ResponseEntity라는 클래스 활용
11.3 REST API 구현하기
- REST 컨트롤러와 일반 컨트롤러의 차이란?
- REST 컨트롤러는 JSON이나 텍스트 같은 데이터를 반환
- 일반 컨트롤러는 뷰 페이지를 반환
- REST API에서 데이터를 생성할 때는 JSON으로 데이터를 받아와야 하므로 dto 매개 변수 앞에 @RequestBody라는 어노테이션을 추가해야 한다.
- Slf4j는 Simple logging facade for Java의 약자. 로깅을 직접하지 않고 로깅 라이브러리를 찾아서 사용할 수 있도록 해줌
- ResponseEntity란?
- Rest 컨트롤러의 반환형, 즉 REST API의 응답을 위해 사용하는 클래스
- REST API 요청을 받아 응답할 때 이 클래스에 HTTP 상태코드, 헤더, 본문을 실어 보낼 수 있음
- HttpStatus란?
- HTTP 상태 코드를 관리하는 클래스. 다양한 Enum 타입과 관련한 메서드를 가짐
- Enum 타입은 열거형으로 여러 상수로 이루어진 고정 집합을 가짐
- 열거형이름. 상수 의 사용 형식을 가짐
- ResponseEntity의 build() 메서드는
- HTTP 응답의 body가 없는 ResponseEntity 객체를 생성
- build() 메서드로 생성된 객체는 body(null)의 결과와 같음
'개인 공부 > BackEnd Study' 카테고리의 다른 글
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 13 - (0) | 2024.03.24 |
---|---|
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 12 - (0) | 2024.03.24 |
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 7 - (0) | 2024.03.17 |
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 6 - (0) | 2024.03.17 |
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 2 - (0) | 2024.03.09 |