0Pricing
Frontend Academy · Ders

Axios: Interceptor'lar ve Temel URL

baseURL içeren bir Axios örneği oluşturun, istek interceptor'larında kimlik doğrulama belirteçleri ekleyin ve yanıt interceptor'larında 4xx/5xx hatalarını yönetin.

Axios: Interceptor'lar ve Temel URL, CoddyKit'te ücretsiz bir Frontend Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Frontend Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Frontend Academy kursu toplamda 4 dersten oluşur.

Axios Neden Kullanılır?

Axios, XMLHttpRequest üzerine kurulmuş popüler bir HTTP istemcisidir. Şunları ekler: otomatik JSON işlemesi, istek/yanıt araya giricileri, baseURL yapılandırması, zaman aşımı ve istek iptali için token'lar. Birçok ekip hâlâ fetch yerine Axios'u tercih eder.

Axios'u Kurma

npm aracılığıyla kurun. Tarayıcı paketi sıkıştırılmış hâlde yaklaşık 14 KB'tır.

npm install axios

Temel GET ve POST

Axios, JSON gövdelerini otomatik olarak dizeleştirir ve JSON yanıtlarını otomatik olarak ayrıştırır — elle JSON.stringify veya .json() çağrıları yapmanız gerekmez.

import axios from 'axios';

const { data } = await axios.get('/api/users');
console.log(data); // already parsed

const res = await axios.post('/api/users', { name: 'Alice' });
console.log(res.data, res.status);

Axios Örneği Oluşturma

Her çağrıda temel URL'yi, üstbilgileri ve zaman aşımını tekrarlamamak için api'niz için yapılandırılmış bir örnek oluşturun.

import axios from 'axios';

export const api = axios.create({
  baseURL: import.meta.env.VITE_API_URL,
  timeout: 10000,
  headers: { 'Content-Type': 'application/json' }
});

// Use it:
const { data } = await api.get('/users');
const res = await api.post('/users', { name: 'Alice' });

İstek Araya Giricisi: Kimlik Doğrulama Token'ı

Kendinizi tekrarlamadan her isteğe kimlik doğrulama token'ını ekleyin.

api.interceptors.request.use((config) => {
  const token = localStorage.getItem('token');
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
});

Yanıt Araya Giricisi: Genel Hatalar

Tüm yanıtlar için hata yönetimini merkezileştirin: 401 durumunda yönlendirin, 5xx durumunda bildirim gösterin vb.

api.interceptors.response.use(
  (response) => response,
  (error) => {
    if (error.response?.status === 401) {
      window.location.href = '/login';
    }
    if (error.response?.status >= 500) {
      toast.error('Server error. Please try again.');
    }
    return Promise.reject(error);
  }
);

401 Durumunda Token Yenileme

401 durumunu algılamak, token'ı yenilemek ve originalRequest'i kullanıcı fark etmeden yeniden denemek için bir yanıt araya giricisi kullanın.

api.interceptors.response.use(null, async (error) => {
  const originalRequest = error.config;
  if (error.response?.status === 401 && !originalRequest._retry) {
    originalRequest._retry = true;
    const newToken = await refreshToken();
    localStorage.setItem('token', newToken);
    originalRequest.headers.Authorization = `Bearer ${newToken}`;
    return api(originalRequest); // retry
  }
  return Promise.reject(error);
});

URL Parametreleri ve Sorgu

Axios, bir params nesnesini kabul eder; bu nesne otomatik olarak sorgu dizesine dönüştürülür.

const { data } = await api.get('/search', {
  params: { q: 'react hooks', page: 2 }
});
// GET /search?q=react+hooks&page=2

Zaman Aşımları

Yavaş bir sunucuda isteğin takılıp kalmasını önlemek için istek zaman aşımı ayarlayın.

api.get('/slow-endpoint', { timeout: 5000 })
  .catch(err => {
    if (err.code === 'ECONNABORTED') {
      console.log('Request took too long');
    }
  });

İstekleri İptal Etme

AbortController (modern Axios) veya CancelToken (eski API) kullanın.

const controller = new AbortController();

api.get('/big-data', { signal: controller.signal })
  .catch(err => {
    if (axios.isCancel(err)) console.log('cancelled');
  });

controller.abort();

Hata Nesnesinin Yapısı

Axios hatalarında error.response (sunucu hata durum koduyla yanıt verdi), error.request (yanıt alınamadı) ya da ikisi de yoktur (istek kurulumu başarısız oldu).

Axios ve Fetch — Ne Zaman Hangisini Seçmeli

Axios: daha temiz bir API, yerleşik araya giriciler ve daha kolay hata yönetimi. Fetch: yerel, daha küçük paket ve modern akış desteği. Yeni projelerde genellikle Fetch + ince bir sarmalayıcı tercih edilir; mevcut Axios projeleri ise nadiren taşınır.

Hızlı Kontrol

Her bir çağrıyı ayrı ayrı değiştirmeden her isteğe bir Authorization üst bilgisi eklemenizi sağlayan Axios özelliği hangisidir?

Özet: Axios

Yapılandırılmış örnekler için baseURL ve timeout içeren axios.create(). JSON yanıtları otomatik olarak ayrıştırılır (res.data). İstek araya giricileri belirteçleri ekler; yanıt araya giricileri hataları yönetir ve belirteçleri yeniler. Sorgu dizeleri için params nesnesi kullanılır. İptal işlemleri için AbortController kullanılır. Temiz bir yapı için Axios'u; daha küçük paket için Fetch + sarmalayıcıyı seçin.

Sıkça Sorulan Sorular

“Axios: Interceptor'lar ve Temel URL” dersi ücretsiz mi?

Evet — “Axios: Interceptor'lar ve Temel URL” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Frontend Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Frontend Academy kursu toplamda 4 dersten oluşur.

“Axios: Interceptor'lar ve Temel URL” dersinde ne öğreneceğim?

baseURL içeren bir Axios örneği oluşturun, istek interceptor'larında kimlik doğrulama belirteçleri ekleyin ve yanıt interceptor'larında 4xx/5xx hatalarını yönetin. Frontend Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Frontend Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Frontend Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Axios: Interceptor'lar ve Temel URL” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Frontend Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Frontend Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Fetch API: GET POST PUT DELETE
  2. Axios: Interceptor'lar ve Temel URL
  3. Hata Yönetimi: HTTP Durum Kodları
  4. Veri Önbelleğe Alma için SWR ve React Query
← Frontend Academy Sayfasına Dön