[typescript] 타입스크립트에서 REST API 호출 시 인터셉터 사용 방법
웹 애플리케이션을 개발하다보면 REST API를 호출할 때 매번 인증 토큰을 추가하거나 특정 헤더를 설정해야 하는 경우가 있습니다. 이런 중복된 작업을 피하기 위해 인터셉터(interceptor)를 사용할 수 있습니다. 이번 글에서는 타입스크립트에서 Axios를 사용하면서 인터셉터를 활용하는 방법에 대해 알아보겠습니다.
Axios와 함께 인터셉터 사용하기
Axios는 인기 있는 HTTP 클라이언트 라이브러리로, 브라우저 및 Node.js에서 모두 사용할 수 있습니다. Interceptor는 클라이언트 요청이나 응답을 가로채어 수정할 수 있게 해주는 기능입니다.
이 예시에서는 Axios에서 인터셉터를 사용하여 모든 요청에 인증 토큰을 추가하는 방법을 살펴보겠습니다.
import axios, { AxiosRequestConfig } from 'axios';
const api = axios.create({
baseURL: 'https://api.example.com',
headers: {
'Content-Type': 'application/json',
},
});
api.interceptors.request.use((config: AxiosRequestConfig) => {
const token = localStorage.getItem('token');
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
}, (error) => {
return Promise.reject(error);
});
위의 코드에서 api.interceptors.request.use
메서드를 사용하여 모든 요청에 토큰을 추가하는 인터셉터를 설정했습니다. localStorage.getItem('token')
을 사용하여 저장된 토큰을 가져와 요청 헤더에 추가합니다.
이제 api
를 사용하여 REST API를 호출할 때마다 해당 토큰이 자동으로 헤더에 추가됩니다.
결론
인터셉터를 사용하면 REST API 호출 시 발생하는 공통 작업들을 효율적으로 처리할 수 있습니다. Axios와 같은 라이브러리에서 제공하는 인터셉터 기능을 적절히 활용하여 코드를 깔끔하게 유지하고 중복을 최소화할 수 있습니다.
참고 자료: