[javascript] Axios에서의 인터셉터를 이용한 요청 전처리 및 응답 후처리

Axios는 많이 사용되는 JavaScript 라이브러리로, HTTP 클라이언트를 통해 서버와 통신하는 기능을 제공합니다. Axios는 요청을 보내거나 응답을 받을 때 인터셉터(Interceptor) 기능을 제공하여 요청과 응답의 전처리 및 후처리를 할 수 있습니다. 이를 통해 코드의 재사용성과 가독성을 높일 수 있습니다.

인터셉터란?

인터셉터는 Axios에서 요청 전송 전과 응답 수신 후에 실행되는 함수입니다. Axios는 다음과 같은 인터셉터를 제공합니다.

요청 인터셉터 사용하기

Axios에서 요청 인터셉터를 사용하려면 axios.interceptors.request.use() 메서드를 사용합니다. 다음은 해당 메서드를 사용한 예시입니다.

axios.interceptors.request.use((config) => {
  // 요청 전에 실행될 코드 작성
  config.headers.Authorization = getToken(); // 헤더에 인증 토큰 추가하기
  return config;
}, (error) => {
  // 요청 전에 에러 발생 시 실행될 코드 작성
  return Promise.reject(error);
});

위의 예시 코드에서는 axios.interceptors.request.use() 메서드로 요청 전 인터셉터를 등록하고 있습니다. 이 인터셉터는 요청을 보내기 전에 실행되며, config 객체를 매개변수로 받습니다. config 객체는 요청과 관련된 설정을 담고 있으며, 이를 통해 요청 데이터나 헤더를 수정할 수 있습니다. 예시 코드에서는 config.headers에 인증 토큰을 추가하는 작업을 수행하고 있습니다.

응답 인터셉터 사용하기

Axios에서 응답 인터셉터를 사용하려면 axios.interceptors.response.use() 메서드를 사용합니다. 다음은 응답 인터셉터를 사용한 예시입니다.

axios.interceptors.response.use((response) => {
  // 응답 수신 후 실행될 코드 작성
  return response.data; // 응답 데이터 반환
}, (error) => {
  // 응답 수신 후 에러 발생 시 실행될 코드 작성
  return Promise.reject(error);
});

위의 예시 코드에서는 axios.interceptors.response.use() 메서드로 응답 인터셉터를 등록하고 있습니다. 이 인터셉터는 응답을 수신한 후 실행되며, response 객체를 매개변수로 받습니다. response 객체는 응답에 관련된 정보를 담고 있으며, 이를 통해 응답 데이터를 가공하거나 오류 처리를 할 수 있습니다. 예시 코드에서는 응답 데이터를 반환하고 있습니다.

결론

Axios를 사용하여 요청 전처리와 응답 후처리를 수행하는 방법에 대해 알아보았습니다. 이를 통해 요청과 응답에 대한 작업을 간단하고 간결하게 처리할 수 있으며, 코드의 재사용성과 가독성을 높일 수 있습니다.

더 자세한 내용은 Axios 공식 문서를 참고해주세요.