Takip et

Axios ile Verimli API Çağrıları: İstenmeyen İstekleri İptal Etme

Axios ile Verimli API Çağrıları: İstenmeyen İstekleri İptal Etme

Merhaba! Ben Fatih Soysal ve bugün sizlere Axios kütüphanesi kullanarak API çağrılarını nasıl daha verimli hale getireceğimizi ve istenmeyen istekleri nasıl iptal edeceğimizi anlatacağım. Özellikle hızlı ve dinamik arayüzler geliştirirken, kullanıcının hızlı bir şekilde farklı arama sorguları yapması durumunda, önceki istekleri iptal etmeden yeni istekler göndermek performans sorunlarına yol açabilir. Bu makalede, Axios’un sağladığı CancelToken özelliği sayesinde bu sorunların nasıl çözüleceğini detaylı bir şekilde ele alacağız.

Neden API İsteklerini İptal Etmeliyiz?

Bir kullanıcı hızlı bir şekilde ardı ardına arama yapıyorsa, önceki istekler hala işlem görürken yeni istekler göndermek hem sunucu üzerinde gereksiz yük oluşturur hem de uygulamada gecikmelere neden olur. Örneğin, bir arama çubuğunda kullanıcı sürekli yeni karakterler girdiğinde her karakter için bir API çağrısı göndermek yerine, önceki isteği iptal edip en son girilen arama sorgusuna ait isteği göndermek çok daha verimli olacaktır. Bu, kullanıcı deneyimini önemli ölçüde iyileştirecek ve kaynakların daha etkin kullanılmasını sağlayacaktır.

Axios ile İstek İptali: CancelToken

Axios, istenmeyen istekleri iptal etmek için CancelToken özelliğini sunar. Bu özellik, bir istek oluşturulurken bir iptal token’ı oluşturmamızı ve bu token’ı isteği iptal etmek için kullanmamızı sağlar. İşte basit bir örnek:


import axios from 'axios';

const CancelToken = axios.CancelToken;
let cancel;

const fetchData = (query) => {
  // Önceki isteği iptal et
  if (cancel) {
    cancel();
  }

  // Yeni bir iptal token'ı oluştur
  cancel = new CancelToken(function executor(c) {
    cancel = c;
  });

  axios.get('/api/data', {
    cancelToken: cancel,
    params: { q: query }
  })
  .then(response => {
    // Başarılı yanıt işlemleri
    console.log(response.data);
  })
  .catch(error => {
    if (axios.isCancel(error)) {
      console.log('İstek iptal edildi');
    } else {
      console.log('Hata oluştu:', error);
    }
  });
};

// Örnek kullanım
fetchData('javascript');
setTimeout(() => fetchData('react'), 1000); // 1 saniye sonra farklı bir istek gönder

Bu örnekte, her yeni arama için önceki cancel token’ı iptal ediliyor ve yeni bir token oluşturuluyor. axios.isCancel(error) metodu ise isteğin iptal edilip edilmediğini kontrol etmemizi sağlar. Bu sayede, sadece en son yapılan istek işlenir ve önceki istekler gereksiz yere işlenmez.

Uygulama Örnekleri ve İleri Seviye Teknikler

Bu teknik, arama kutuları, otomatik tamamlama özellikli alanlar ve sürekli güncellenen veriler içeren uygulamalar için oldukça faydalıdır. Örneğin, büyük veri kümelerinden arama sonuçlarını görüntüleyen bir uygulamada, bu yöntem performans sorunlarını önlemek için oldukça önemlidir. Daha ileri seviye teknikler için, React gibi framework’ler ile useEffect hook’unu kullanarak bileşenlerinizin temizlenmesi ve iptal token’larının yönetimi optimize edilebilir. Daha fazla bilgi için web sitemi ziyaret edebilirsiniz.

Sonuç

Axios ile CancelToken kullanarak API çağrılarınızı optimize etmek ve istenmeyen istekleri iptal ederek hem sunucu yükünü azaltır hem de kullanıcı deneyimini iyileştirebilirsiniz. Bu basit ama etkili teknik, performans açısından kritik uygulamalarınızda önemli bir rol oynar. Unutmayın ki, verimli kod yazmak, performans ve kullanıcı deneyimi açısından büyük bir fark yaratır.

Umarım bu makale size yardımcı olmuştur. Başka sorularınız varsa lütfen bana ulaşmaktan çekinmeyin. Daha fazla bilgi için, Axios resmi GitHub sayfasını inceleyebilirsiniz.

#Etiketler: Axios, API, İstek İptali, CancelToken, Verimli Kod, Performans Optimizasyonu, Javascript, Web Geliştirme, API Çağrıları, Fatih Soysal

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık