diff --git a/src/apis/index.ts b/src/apis/index.ts index 00f25e9f..9f417aa1 100644 --- a/src/apis/index.ts +++ b/src/apis/index.ts @@ -1,3 +1,13 @@ // axios의 인스턴스 구현체가 있고 전반적으로 instance를 이용해서 api 콜하는 함수들 -export {}; +import apiInstance from './instance.api'; + +const APIS = { + // 아래는 예시 + getPosts: async () => { + const { data } = await apiInstance.get('/posts'); + return data; + }, +}; + +export default APIS; diff --git a/src/apis/instance.api.ts b/src/apis/instance.api.ts new file mode 100644 index 00000000..ac8ea237 --- /dev/null +++ b/src/apis/instance.api.ts @@ -0,0 +1,35 @@ +import axios, { type AxiosInstance } from 'axios'; + +const BASE_URL = 'https://api.10mm.today'; +const BASE_TIMEOUT = 10000; + +const setInterceptors = (instance: AxiosInstance) => { + instance.interceptors.request.use( + (config) => { + return config; + }, + (error) => { + return Promise.reject(error); + }, + ); + + instance.interceptors.response.use( + (response) => { + return response; + }, + (error) => { + return Promise.reject(error); + }, + ); + + return instance; +}; + +const axiosInstance = setInterceptors( + axios.create({ + baseURL: BASE_URL, + timeout: BASE_TIMEOUT, + }), +); + +export default axiosInstance;