useGetXxx 패턴에 따라 새 React Query API 훅을 생성합니다. 새 백엔드 API를 연동하거나, 엔드포인트에 대한 훅이 필요하거나, 데이터 페칭 로직을 추가할 때 반드시 이 스킬을 사용하세요.
$ARGUMENTS 설명을 가진 $0 엔드포인트에 대한 새 API 훅을 생성합니다.
다음 단계를 따르세요:
packages/ui/src/hooks/api/reactQueryHelper.ts를 읽어 queryFn과 queryClient 이해packages/ui/src/constants/EndPoints.ts에서 엔드포인트 네이밍 확인packages/ui/src/hooks/api/의 유사한 기존 훅에서 패턴 파악packages/ui/src/constants/EndPoints.ts에 엔드포인트 상수 추가:
export const NEW_ENDPOINT = `/api/path/to/endpoint`;
packages/ui/src/constants/types/에 타입 생성 또는 확장:
export namespace GetNewData {
export interface Parameters {
applicationName: string;
from: number;
to: number;
// ... 기타 파라미터
}
export interface Response {
// ... 응답 형태
}
}
packages/ui/src/constants/types/index.ts에서 익스포트.
packages/ui/src/hooks/api/useGetNewData.ts 생성:
import { useQuery } from '@tanstack/react-query';
import { END_POINTS, GetNewData } from '@pinpoint-fe/ui/src/constants';
import { convertParamsToQueryString } from '@pinpoint-fe/ui/src/utils';
import { queryFn } from './reactQueryHelper';
export const useGetNewData = (params: GetNewData.Parameters) => {
const queryString = convertParamsToQueryString(params);
return useQuery<GetNewData.Response>({
queryKey: [END_POINTS.NEW_ENDPOINT, queryString],
queryFn: queryFn(`${END_POINTS.NEW_ENDPOINT}?${queryString}`),
enabled: !!params.applicationName,
gcTime: 30000,
});
};
packages/ui/src/hooks/api/index.ts (또는 해당하는 배럴 파일)에서 익스포트.
enabled 사용reactQueryHelper.ts의 queryFn 사용 — 직접 fetch를 구현하지 마세요useQuery 대신 useMutation 사용gcTime: 0 설정, 부드러운 전환을 위해 placeholderData: (prev) => prev 사용