HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
♥️
2기 최종 프로젝트 팀별 공간
/
💸
10원모아10조❗️
/
🖼️
Front End
/
☁️
프론트엔드 팀 링크 공유
/
Axios Instance 모델링

Axios Instance 모델링

 
 
// src/apis/request.ts export default class Request { public req: AxiosInstance; constructor(baseURL: string) { // 만약 header를 받는다면 여기서 받는다. // 공통으로 일괄되게 처리해야할 것들은 여기서 한번에 처리한다. //(ex. timeout이 났을 때 재시도를 3번까지 하게 한다던지, 토큰을 주입받아 처리하는 로직을 넣는다던지) this.req = axios.create({ baseURL }); } } // src/apis/documents.ts export default class Documents extends Request { getDocuments = () => this.req.get<getDocuments의_RESPONSE_DATA_TYPE>('/'), getDocumentById = (id: string) => this.req.get<getDocumentById의_RESPONSE_DATA_TYPE>(`/${id}`), } // src/apis/index.ts export const documentsAPI = new Documents(BASE_URL); // 사용하는 곳 documentsAPI.getDocuments();
 
 
github.com
https://github.com/prgrms-fe-devcourse/FEDC2-4_Project_Notion_VanillaJS/pull/10#discussion_r857079671