728x90
ResponseEntity
- 'HttpEntity' 를 상속받아 HTTP 응답을 나타내는 클래스
- HTTP 응답의 상태 코드와 함께 헤더(headers)와 본문(body)을 포함
('HttpEntity' 의 모든 기능을 활용할 수 있으면서도 추가적으로 HTTP 응답을 설정하고 반환할 수 있음)
→ 클라이언트에게 보다 구체적인 응답 제공, 효과적인 통신 구현
- RESTful 웹 서비스나 웹 애플리케이션 개발할 때 유용
ResponseEntity< >
- '<>' 는 제네릭 타입을 지정하는 부분
- 제네릭 타입은 컬렉션과 같은 클래스나 인터페이스를 정의할 때 사용(컴파일 시점에 타입 안정성 보장, 재사용성 높여줌)
- '<>' 안에는 반환되는 데이터의 형식을 지정
# ResponseEntity<?>
- '<?>' 는 와일드카드 타입을 의미
- 어떤 형식의 데이터든 응답으로 반환할 수 있음
→ 클라이언트는 응답으로 받을 데이터의 형식을 미리 알 수 없음
- 특정한 형식의 데이터를 반환하지 않을 때 유용
→ 하지만 클라이언트에서 반환된 데이터를 안전하게 다루기 어려울 수 있
# 예시
@RestController
public class ExampleController {
@GetMapping("/example")
public ResponseEntity<String> exampleEndpoint() {
String responseBody = "This is an example response";
return ResponseEntity.status(HttpStatus.OK).body(responseBody);
}
}
// 위의 예제에서는 "/example" 엔드포인트에 대한 GET 요청에 대한 응답으로 문자열을 반환합니다.
@RestController
public class ExampleController {
@GetMapping("/example")
public ResponseEntity<MyObject> exampleEndpoint() {
MyObject responseBody = new MyObject("example", 123);
return ResponseEntity.status(HttpStatus.OK).body(responseBody);
}
}
// "/example" 엔드포인트에 대한 GET 요청에 대한 응답으로 JSON 형식의 객체를 반환합니다.
// 여기서 MyObject는 사용자가 정의한 클래스입니다.
@RestController
public class ExampleController {
@GetMapping("/example")
public ResponseEntity<?> exampleEndpoint(@RequestParam("id") String id) {
if (id.equals("example")) {
return ResponseEntity.status(HttpStatus.OK).body("Success");
} else {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Not found");
}
}
}
// "/example" 엔드포인트에 대한 GET 요청을 처리하고, 요청된 id에 따라 성공 또는 실패를 나타내는 응답을 반환합니다.
// 요청된 id가 "example"이면 성공 메시지를 반환하고, 그렇지 않으면 "Not found" 메시지를 반환합니다.
728x90
'프레임워크(Framework) > Spring Boot' 카테고리의 다른 글
[Spring Boot] YAML 파일 (49) | 2024.04.15 |
---|---|
[Spring Boot] Validation (유효성 검사) (49) | 2024.04.15 |
[Spring Boot] 파라미터 전달 방식 (45) | 2024.04.15 |
[Spring Boot] 개요 (24) | 2024.04.05 |
[Spring Boot] 스프링 부트 로드맵 (28) | 2024.02.13 |