Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

İ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