HTTP Interceptors in a Create-React-App with Axios
30 August, 2021
Create a React App
The first thing we'll need to add HTTP interceptors to is an app...
Using the instruction on the Create-React-App site, create a React app with Typescript.
Add Axios to the App
For those unfamiliar with Axios, it is an npm package for making HTTP requests.
After the app has finished setting up, in a terminal add Axios to the app:
npm i axios
Configure the HTTP Interceptors
It is trivial to actually configure the interceptors in your React app.
In the index.tsx file of your React app add the following:
import axios from "axios"; // Configure outbound request interceptor logic axios.interceptors.request.use(request => { return request; }, error => Promise.reject(error)); // Configure incoming response interceptor logic axios.interceptors.response.use(response => { return response; }, error => Promise.reject(error));
These two use() calls on the request and response objects in the Axios interceptors does the magic to modify the outgoing request and the incoming response data.
In the anonymous arrow function, it is possible to configure any custom logic required for your app.
Commonly, this will be adding auth token headers along with setting/retrieving other headers or local storage values.
If you liked this post, please share it!