İstekleri veya yanıtları "then"
veya "catch"
tarafından işlenmeden önce ele alabilirsiniz.
Interceptor'lar, bir istek gönderilmeden önce veya sonra isteği değiştirmek veya işlemek için kullanılır. Bu interceptor, bir istek yapıldığında çağrılacak bir fonksiyon alır ve bu fonksiyon, istek yapılmadan önce isteği manipüle etme veya kontrol etme imkanı sağlar.
// İstek için yol kesici ekle
axios.interceptors.request.use(function (config) {
// Yanıt gönderilmeden önce bir şey yap
return config;
}, function (error) {
// Yanıttaki hata ile bir şey yap
return Promise.reject(error);
});
// İstek için yol kesici ekle
axios.interceptors.response.use(function (response) {
// 2xx aralığında bulunan herhangi bir durum kodu, bu işlevin tetiklenmesine neden olur.
// Yanıttaki veri ile bir şey yap
return response;
}, function (error) {
// 2xx aralığının dışında kalan herhangi bir durum kodu, bu işlevin tetiklenmesine neden olur.
// Yanıttaki hata ile bir şey yap
return Promise.reject(error);
});
Örnekler:
const instance = axios.create();
instance.interceptors.request.use(function(config) {
return config;
})
Bu interceptor fonksiyon, gelen config nesnesini değiştirmeden doğrudan geri döndürdüğü için, kodun geri dönüşü değiştirilmemiş config nesnesidir. Bu, isteğin orijinal yapılandırmasını korumak için yapılan bir adımdır.
Eğer değiştirilmiş nesne döndürmek istersek şöyle olurdu:
instance.interceptors.request.use(function(config) {
// İsteğin URL'sini değiştirme örneği
config.url = "https://example.com/new-endpoint";
// Başlık ekleme örneği
config.headers["Authorization"] = "Bearer token123";
// Parametre ekleme örneği
config.params = { ...config.params, newParam: "value" };
// İstek gövdesini değiştirme örneği
config.data = { key: "newValue" };
return config;
});
Kaynaklar:
https://axios-http.com/docs/interceptors
https://axios-http.com/tr/docs/interceptors