TIL50-01 반복된 Api 줄이기

김태혁·2023년 3월 7일
0

TIL

목록 보기
136/205

Api의 반복

  • 반복된 Api의 예시입니다.
import { api } from './axiosbase';

// *========== 신상품 페이지 조회 ==========*
export const getNewReview = async (token) => {
  const response = await api.get('/api/reviews/new-reviews', {
    headers: {
      Authorization: `${token}`,
    },
  });
  return response.data;
};

// *========== 신상품 최저가순 조회 ==========*
export const getNewCheapReview = async (token) => {
  const response = await api.get('/api/reviews/new-reviews?sort=cheap', {
    headers: {
      Authorization: `${token}`,
    },
  });
  return response.data;
};

// *========== 신상품  최고가순 조회 ==========*
export const getNewExpensiveReview = async (token) => {
  const response = await api.get('/api/reviews/new-reviews?sort=expensive', {
    headers: {
      Authorization: `${token}`,
    },
  });
  return response.data;
};
  • 다음은 반복된 Api를 하나로 줄인 코드입니다.
import { api } from './axiosbase';

export const getNewReview = async (token, sort = '') => {
  const response = await api.get(`/api/reviews/new-reviews${sort ? `?sort=${sort}` : ''}`, {
    headers: {
      Authorization: `${token}`,
    },
  });
  return response.data;
};
  • 이렇게 하면 sort 매개변수를 사용하여 최저가/최고가 정렬을 선택할 수 있습니다. sort 매개변수가 전달되지 않으면, 쿼리 문자열이 없는 URL을 호출합니다. 이 코드는 함수를 하나로 줄이면서도 getNewCheapReview와 getNewExpensiveReview를 대체할 수 있습니다.
profile
도전을 즐기는 자

0개의 댓글