react-axios-config
v1.0.2
Published
Configuration for React applications using Axios
Downloads
143
Maintainers
Readme
Axios Configuration
These functions streamline HTTP request management by offering reusable Axios instances with custom configurations and comprehensive error handling, simplifying the process of managing both authenticated and non-authenticated API calls. The privateAxios function enhances authenticated requests with built-in support for token refresh handling and user-friendly error messaging, while publicAxios provides a straightforward configuration for general HTTP requests.
Features
- Custom Request Transformation: Applies a dateTransformer function to format Date objects as ISO 8601 strings for consistent API request data.
- Authentication Management: Automatically retries failed requests with a 401 Unauthorized status using a customizable callback function for handling token refresh or re-authentication.
- Error Handling: Provides detailed error messages for network failures.Ensures general errors return a clear, standardized response.
- Basic Configuration: Creates an Axios instance with standard options like baseURL and timeout, suitable for requests that don't require authentication.
Installation
Install the package with npm:
npm install react-axios-config
Parameters
baseURL: The base URL for the Axios instance.
timeout : The timeout duration for the request in milliseconds.
callback : (optional for privateAxios): A function to handle retry logic for 401 Unauthorized responses.
Usage/Examples
- privateAxios:
import { privateAxios } from 'react-axios-config';
const privateInstance = privateAxios({
baseURL: 'https://api.example.com',
callback: async (instance, originalRequest) => {
// Logic to handle token refresh
const newToken = await refreshToken();
originalRequest.headers['Authorization'] = `Bearer ${newToken}`;
return instance(originalRequest);
},
timeout: 5000,
});
privateInstance.get('/protected-route')
.then(response => console.log(response.data))
.catch(error => console.error(error));
}
- publicAxios:
import { publicAxios } from 'react-axios-config';
const publicInstance = publicAxios({
baseURL: 'https://api.example.com',
timeout: 5000,
});
publicInstance.get('/public-route')
.then(response => console.log(response.data))
.catch(error => console.error(error));
Authors
- Shivaji : (Sr. React Developer)
- Shyamal : (Sr. React Developer)