240830 내일배움캠프 백엔드 Java 6기 TIL : ResponseEntity

박대현·2024년 9월 2일
0

숙련주차 추가과제 구현 요구사항을 코딩하던 중,

와 같이, 반환 status code를 지정해주는 디렉션이 있었다. 강의내용에는 없던 내용이라 헤맸는데, ResponseEntity라는 클래스를 알게되었다.

간단한 예시이다. 이렇게 Status값을 OK로 리턴하면 코드200으로 반환된다.
ResponseEntity의 장점은
1. 클라이언트에게 status 코드를 명시적으로 제공할 수 있다.
2. 본문과 헤더를 세밀하게 제어할 수 있다.
3. ResponseEntity를 사용하면 일반적인 객체 또는 커스텀 클래스를 응답으로 반환할 수 있으며, Spring은 자동으로 해당 객체를 적절한 형식으로 변환해준다.

import org.springframework.http.ResponseEntity;
@RestController
@RequestMapping("/api/books")
public class BookController {

    @Autowired
    private BookService bookService;

    @GetMapping("/{id}")
    public ResponseEntity<Book> getBookById(@PathVariable Long id) {
        Book book = bookService.getBookById(id);

        if (book != null) {
            return ResponseEntity.ok().body(book);
        } else {
            return ResponseEntity.notFound().build();
        }
    }
}

body(entity)를 넣으면, 코드값에 더하여 객체값도 같이 반환할 수 있다.

자주사용되는 반환코드들은 다음과 같다.
HttpStatus.OK: 200 OK
HttpStatus.CREATED: 201 Created
HttpStatus.NO_CONTENT: 204 No Content
HttpStatus.BAD_REQUEST: 400 Bad Request
HttpStatus.UNAUTHORIZED: 401 Unauthorized
HttpStatus.FORBIDDEN: 403 Forbidden
HttpStatus.NOT_FOUND: 404 Not Found
HttpStatus.INTERNAL_SERVER_ERROR: 500 Internal Server Error

0개의 댓글