반응형
***본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
쿼리 파라미터 사용. 특정 식별 값이 아닌 다른 값들로 필터링하는 기능에서 우리가 사용을 종종한다
getMovies에 사용한다.
@GET()
getMovies(){
return this.movies;
}
기존 코드의 문제점
- 모든 영화 데이터를 무조건 반환
- 클라이언트가 특정 제목을 포함하는 영화만 조회하고 싶어도, 항상 전체 영화 목록을 반환함.
- 필터링 기능이 없어 원하는 데이터를 선택적으로 가져올 수 없음.
- 검색 기능이 없음
- 클라이언트가 "해리포터"라는 제목이 포함된 영화만 보고 싶을 때, 이를 검색할 방법이 없음.
- RESTful API에서 GET 요청 시 **쿼리 파라미터(Query Parameter)**를 이용해 필터링하는 것이 일반적임.
@Get()
getMovies(
@Query('title') title?:string,
){
if(!title){
return this.movies;
}
return this.movies.filter(m=>m.title.startsWith(title));
}
변경 이유 및 개선된 점
- 쿼리 파라미터(title)를 이용해 검색 기능 추가
- 클라이언트가 GET /movie?title=해리 같은 요청을 보내면, title 값으로 "해리"를 받음.
- title? → 물음표(?)는 옵셔널(optional) 파라미터를 의미하여, title이 없을 수도 있음을 나타냄.
- 제목이 없으면 기존 방식대로 전체 목록 반환
- 클라이언트가 GET /movie 요청 시에는 기존처럼 모든 영화 목록을 반환.
- title 값이 있을 경우, 해당 제목으로 시작하는 영화만 필터링하여 반환
- filter()를 사용하여 title로 시작하는 영화만 반환.
변경된 코드의 장점
쿼리 파라미터(title 값)를 이용해 원하는 영화만 검색 가능
title이 없는 경우 기존처럼 전체 목록을 반환하여 유연한 동작 보장
불필요한 데이터 전송을 줄여 API 효율성 향상
RESTful API의 일반적인 패턴에 맞춰 설계




#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
https://bit.ly/4hTSJNB
반응형