Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- PULL방식아키텍쳐
- 롬복사용시주의할점
- API
- git
- aws
- 시계열디비
- 정보처리기사
- 어노테이션
- Docker
- 서버
- 정처기
- 알고리즘
- CICD
- 정처기공부
- 자바
- Groovy문법
- 롬복
- 정처기필기
- 생성자
- 정보처리기사필기
- spring
- 완전탐색알고리즘
- java
- 빌드자동화도구
- 빌드스크립트
- 무중단배포
- 롬북
- controller
- 프로그래머스
- Java8
Archives
- Today
- Total
우당탕탕 개발일지
[Spring] ResponseEntity 이란? 본문
- ResponseEntity는 HttpEntity를 상속받는다.
- 데이터의 결과 값과 HTTP 상태 코드를 개발자가 제어할 수 있는 클래스이다.
- 클라이언트의 요청에 대한 응답 데이터가 포함되어있다.
- ResponseEntity에는 HttpStatus, HttpHeaders, HttpBody 를 포함한다.
- 상태코드, 헤더값, 결과값 등의 데이터를 프론트엔드에게 넘겨줄 수 있고, 에러코드도 자세히 설정해서 전달할 수 있다.
📌 ResponseEntity 구조
- HttpEntity에서 상속받은 status, headers, body를 매개변수로 받는다.
- status : 상태 코드를 제어하여 넘김 http 상태 코드
- headers : 요청/응답에 대한 요구사항 포함
- body : 결과에 대한 값 포함
- body와 header 부분은 'null'이 들어올 수 있음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
public class ResponseEntity<T> extends HttpEntity<T> {
private final Object status;
public ResponseEntity(HttpStatus status) {
this(null, null, status);
}
public ResponseEntity(@Nullable T body, HttpStatus status) {
this(body, null, status);
}
public ResponseEntity(MultiValueMap<String, String> headers, HttpStatus status) {
this(null, headers, status);
}
public ResponseEntity(@Nullable T body, @Nullable MultiValueMap<String, String> headers, HttpStatus status) {
this(body, headers, (Object) status);
}
public ResponseEntity(@Nullable T body, @Nullable MultiValueMap<String, String> headers, int rawStatus) {
this(body, headers, (Object) rawStatus);
}
private ResponseEntity(@Nullable T body, @Nullable MultiValueMap<String, String> headers, Object status) {
super(body, headers);
Assert.notNull(status, "HttpStatus must not be null");
this.status = status;
}
|
cs |
📌 ResponseEntity 사용법
- ResponseEntity<dto> 로 작성하여 응답데이터를 넘겨 준다.
- status([상태코드])로 상태코드를 변경하여 넘겨 줄 수도 있다.
- body([넘겨줄객체]) 객체 데이터를 담아 body로 결과 값을 넘겨줄 수 있다.
1
2
3
4
5
6
7
|
// Controller
@GetMapping("/{id}")
public ResponseEntity<ArticleResponse> get(@PathVariable Long id) {
ArticleResponse articleResponse = articleService.getArticleById(id);
return ResponseEntity.ok().body(articleResponse);
}
|
cs |
1
2
3
4
5
6
7
8
|
// Response
@Getter
@AllArgsConstructor
public class ArticleResponse {
private Long id;
private String title;
private String content;
}
|
cs |
👇 아래와 같이 상태코드를 수정하여 전달해 줄 수도 있음
1
2
3
4
5
6
|
@GetMapping("/{id}")
public ResponseEntity<ArticleResponse> get(@PathVariable Long id) {
ArticleResponse articleResponse = articleService.getArticleById(id);
return ResponseEntity.status(333).body(articleResponse);
}
|
cs |
'Spring' 카테고리의 다른 글
[Spring] @ControllerAdvice / @RestControllerAdvice 란? (0) | 2023.01.01 |
---|---|
[JPA] Pageable이란? (0) | 2022.12.25 |
💡 JWT(JSON Web Token) 이란? (0) | 2022.12.09 |
빌더 패턴(Builder Pattern) / 빌더 어노테이션(@Builder) (0) | 2022.11.23 |
[Spring] TDD(Test-Driven-Development), 테스트 주도 개발 정리하기 (0) | 2022.11.18 |