Add Axios Interceptor in Services where Api is called

 Create Services folder in src

Create Api Folder and create index.js

import { url } from "../BaseURL";
import axiosApiInstance from "../Interceptor";

const outGetRegRegbasic = async (data) => {
  return await axiosApiInstance.post(`${url}api/his7/reg/websrv/outGetRegRegbasic`, data)
}

export const _services = {
  outGetRegRegbasic ,
};

Create url Folder  and create index.js

export const url = 'http://35.234.63.118:30000/'


Create Interceptor folder  and create index.js

import axios from 'axios'

const axiosApiInstance = axios.create({});


// Request interceptor for API calls
axiosApiInstance.interceptors.request.use(
    async config => {
        config.headers = {
            'Access-Control-Allow-Origin': '*',
            // 'Authorization': `Bearer ${store.getState()?.counter?.token}`,
           // 'Authorization': `Bearer eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTUxMiIsInR5cCI6IkpXVCIsImN0eSI6IkpXVCJ9.eyJjbGllbnRpZCI6Im1hc2hyZXEiLCJuYmYiOjE2NTUxMTk2NzMsImV4cCI6MTY1NTEyMzI3M30`,
            'Content-Type': 'application/json'
        }
        return config;
    },
    error => {
        Promise.reject(error)
    });

// Response interceptor for API calls
axiosApiInstance.interceptors.response.use((response) => {
    return response
}, async function (error) {
    const originalRequest = error.config;
    if (error.response.status === 403 && !originalRequest._retry) {
        originalRequest._retry = true;
        axios.defaults.headers.common['Authorization'] = 'Bearer ' + 'token';
        return axiosApiInstance(originalRequest);
    }
    return Promise.reject(error);
});

export default axiosApiInstance

import in views

import { _services } from './../../../../Services/Api/index'


Comments

Popular posts from this blog

Simple Redux

React Interview Questions