목차
개요
프로젝트 중에 게시글 목록을 반환하는 API를 만드는 중 3개의 쿼리 파라미터에 따라 전달하는 데이터가 다른 경우가 발생했습니다. 3개의 쿼리 파라미터는 페이지 정보, 정렬 기준, 카테고리 였는데요. 이 3가지를 모두 선택하는 경우, 이 중 2가지만 선택하는 경우, 이중 하나만 선택하는 경우 혹은 하나도 선택하지 않은 경우 모두를 컨트롤러 메서드로 만들기에는 비효율적이라 생각했습니다. 이런 경우 한 가지 메서드로 모든 것을 처리할 수 있는 방법에 대해 소개해드리려고 합니다.
@RequestParam을 사용하자
@RequestParam을 사용하여 세 가지 쿼리 파라미터를 모두 한 메서드 내에서 정의가 가능합니다.
아래 예시를 보시죠.
페이지 정보, 정렬 기준, 카테고리 쿼리 파라미터가 모두 한 컨트롤러 메서드의 인자로 들어가있는 것을 보실 수 있습니다.
@RequestParam의 속성 required에 false 값을 주면 필수값이 아니므로 해당 파라미터는 값이 없어도 됩니다. 다만 제 상황과 같이 값이 주어지지 않을 때에도 기본적으로 적용되어야하는 값들이 있을 수 있습니다.
위 상황에서는 page 파라미터가 쿼리 파라미터에 없어도 1페이지에 대한 값인 것을 나타낼 수 있어야한다는 점입니다.
그런 상황에서는 @RequestParam 속성 defaultValue에 값을 지정해주시면 됩니다.
참고 블로그
'코드스테이츠 > 메인프로젝트(MuDuck) 이슈정리' 카테고리의 다른 글
AWS 서버 한국 시간으로 변경하는 것을 까먹지 말자 (0) | 2023.07.28 |
---|---|
Lombok @Builder 사용 시 기본값을 지정해줘야한다면 @Builder.Default를 사용하자 (0) | 2023.07.28 |
gradlew test -i 를 사용해 테스트코드 오류를 찾자 (0) | 2023.07.28 |
Null 값에 비교연산자를 사용해야한다면 == 을 사용해야한다. (0) | 2023.07.27 |
LocalDateTime 시간 출력 형식에 따라 변환하기 (0) | 2023.07.27 |