[SpringBoot] 게시판 API 서버 만들기 - 초기 작업

Jae·2024년 6월 4일

spring-api-practice

목록 보기
1/3

API 구현 연습을 통해 Spring Security/ Stream / JWT / Redis / JPA 를 실습한다.

작업 환경

  • Java
  • Spring Boot
  • JPA
  • H2
  • Swagger

예정

  • redis
  • Mysql

시작

https://start.spring.io 를 통해서 작업 환경을 셋팅했다.

Dependency

  • Spring Web
  • String Data JPA
  • Lombok
  • Spring Security
  • H2

Exception 만들기

  • 전역적으로 예외를 처리하기위해 ExceptionAdvice를 사용하였다.
@RestControllerAdvice
@Slf4j
public class ExceptionAdvice {

  @ExceptionHandler(Exception.class)
  @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
  public Response exception(Exception e) {
    log.info("e={}", e.getMessage());
    return Response.failure(-1000, "오류가 발생했습니다.");
  }

}
  • Response에서 통일성있는 응답을 하기위해 성공여부/ 코드/ 결과를 반환하도록 하였다.

@Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@JsonInclude(Include.NON_NULL)
public class Response {

  private boolean success;
  private int code;
  private Result result;

  public static Response success() {
    return new Response(true, 0, null);
  }

  public static <T> Response success(T data) {
    return new Response(true, 0, new Success<>(data));
  }

  public static Response failure(int code, String message) {
    return new Response(false, code, new Failure(message));
  }
}

구조

- advice
- config
	- security
- controller
- dto
- entity
- exception
- handler
- repository
- service

0개의 댓글