ZEROST's Blog

ResponseEntity란?

Spring Framework에서 제공하는 클래스 중 HttpEntity라는 클래스가 존재한다. 이것은 HTTP 요청(Request) 또는 응답(Response)에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스이다.

Http 상태코드

  • 1xx (정보): 요청을 받았으며 프로세스를 계속한다
  • 2xx (성공): 요청을 성공적으로 받았으며 인식했고 수용하였다
  • 3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다
  • 4xx (클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
  • 5xx (서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다

Kotlin - SpringBoot

Controller 예제

@RestController
@RequestMapping("/api")
class ResponseApiController {
    // 1. Get 4xx
    // Get http://locaLhost:8080/api/repose?age=10
    @GetMapping("")
    fun getMapping(@RequestParam age: Int?): ResponseEntity {
        return age?.let {
            if (age < 20) {
                return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("age 값은 20보다 커야합니다.")
            }
            ResponseEntity.ok("OK")
        }?: kotlin.run {
            return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("age 값이 누락되었습니다.")
        }
    }

    // 2. Post 200
    @PostMapping("")
    fun postMapping(@RequestBody userRequestDto: UserRequestDto?): ResponseEntity {
        return ResponseEntity.status(HttpStatus.OK).body(userRequestDto)
    }

    // 3. Put 201
    @PutMapping
    fun putMapping(@RequestBody userRequestDto: UserRequestDto?): ResponseEntity {
        return ResponseEntity.status(HttpStatus.CREATED).body(userRequestDto)
    }

    // 4. delete 500
    fun deleteMapping(@PathVariable id: Int) : ResponseEntity {
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null)
    }
}

출처