본문 바로가기
개발 일지/Day by day

2024-02-06 TIL

by 쁘띠뀨띠 2024. 2. 6.

HttpStatus

* 인텔리제이 shift + shift → HttpStatus 검색 enum파일로 여러 상태코드를 확인 할 수 있다.

* @Deprecated 어노테이션이 붙은것은 현재 사용하지 않음

 

public enum HttpStatus implements HttpStatusCode {
OK(200, HttpStatus.Series.SUCCESSFUL, "OK"),
CREATED(201, HttpStatus.Series.SUCCESSFUL, "Created"),
ACCEPTED(202, HttpStatus.Series.SUCCESSFUL, "Accepted"),
NON_AUTHORITATIVE_INFORMATION(203, HttpStatus.Series.SUCCESSFUL, "Non-Authoritative Information"),

 

MULTIPLE_CHOICES(300, HttpStatus.Series.REDIRECTION, "Multiple Choices"),
MOVED_PERMANENTLY(301, HttpStatus.Series.REDIRECTION, "Moved Permanently"),
FOUND(302, HttpStatus.Series.REDIRECTION, "Found"),

 

BAD_REQUEST(400, HttpStatus.Series.CLIENT_ERROR, "Bad Request"),
UNAUTHORIZED(401, HttpStatus.Series.CLIENT_ERROR, "Unauthorized"),
PAYMENT_REQUIRED(402, HttpStatus.Series.CLIENT_ERROR, "Payment Required"),
FORBIDDEN(403, HttpStatus.Series.CLIENT_ERROR, "Forbidden"),
NOT_FOUND(404, HttpStatus.Series.CLIENT_ERROR, "Not Found"),

 

INTERNAL_SERVER_ERROR(500, HttpStatus.Series.SERVER_ERROR, "Internal Server Error"),

 


ResponseEntity

public class ResponseEntity<T> extends HttpEntity<T> {
    private final HttpStatusCode status;

ResponseEntity를 사용하여 반환 값을 커스텀 할 수 있다.

 

내가 사용한 예시 

@PostMapping("/users")
public ResponseEntity<String> saveUser(@RequestBody UserRequestDto requestDto) {
    userService.saveUser(requestDto);
    return ResponseEntity.ok("저장 성공");
}

 

다른 예시

@PostMapping("/users")
public ResponseEntity<String> saveUser(@RequestBody UserRequestDto requestDto) {
    userService.saveUser(requestDto);
    return new ResponseEntity<>("sucess", HttpStatus.OK);
}

 

* ResponseEntity 기본 사용법

ResponseEntity .status(상태코드).body(객체)


2024-02-13 추가 // 팀원의 상태코드 반환하는 방법

 

entity

@Builder
public Post(Long id,String title, String content,User user){
    this.id = id;
    this.title =title;
    this.content =content;
    this.user = user;
}

 

sevice

@GetMapping("/post/{id}")
public ResponseEntity<CommonResponse<PostResponseDto>> getPost(@PathVariable Long id) {
    Post post = postService.getPost(id);

    PostResponseDto response = new PostResponseDto(post);

    return ResponseEntity.ok()
            .body(CommonResponse.<PostResponseDto>builder()
                    .statusCode(HttpStatus.OK.value())

                    .msg("조회가 완료 되었습니다.")
                    .data(response)
                    .build());

}

 

CommonResponse 가 제공하는 속성

@Setter
@Getter
@Builder
public class CommonResponse<T> {
    private Integer statusCode;
    private String msg;
    private T data;
}

'개발 일지 > Day by day' 카테고리의 다른 글

2024-02-22 TIL  (0) 2024.02.22
2024-01-31 TIL  (0) 2024.01.31
2024-01-26 TIL  (1) 2024.01.26
2024-01-23 TIL  (1) 2024.01.24
2024-01-18 TIL  (0) 2024.01.18