0Pricing
Frontend Academy · Ders

Fetch API: GET POST PUT DELETE

fetch ile GET istekleri yapın, POST ve PUT isteklerinde JSON gövdeleri gönderin ve kaynakları kaldırmak için DELETE uç noktalarını çağırın.

Fetch API: GET POST PUT DELETE, CoddyKit'te ücretsiz bir Frontend Academy dersidir. Bu, 4 dersinin 1. 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.

Fetch API'si

fetch(), HTTP istekleri için kullanılan modern tarayıcı api'sidir. Bir Promise döndürür; bu Promise, bir Response nesnesine çözümlenir. Tüm modern tarayıcılarda ve Node.js 18+ sürümünde standarttır.

Temel GET İsteği

En basit fetch kullanımı: bir URL iletin, yanıtı bekleyin ve JSON'u ayrıştırın.

async function fetchUsers() {
  const res = await fetch('https://api.example.com/users');
  if (!res.ok) throw new Error('HTTP ' + res.status);
  const users = await res.json();
  return users;
}

JSON Gövdesiyle POST

method, headers ve body kullanın. Gövde bir dize olmalıdır — nesne üzerinde JSON.stringify() çağırın.

async function createUser(user) {
  const res = await fetch('/api/users', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(user)
  });
  if (!res.ok) throw new Error('Failed: ' + res.status);
  return res.json();
}

createUser({ name: 'Alice', email: 'alice@example.com' });

Tam Güncelleme için PUT

PUT, kaynağın tamamını değiştirir. Nesnenin tamamını gönderin — göndermediğiniz alanlar genellikle sunucuda temizlenir.

await fetch(`/api/users/${id}`, {
  method: 'PUT',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    id, name: 'Alice', email: 'alice@example.com', role: 'admin'
  })
});

Kısmi Güncelleme için PATCH

PATCH yalnızca gönderdiğiniz alanları günceller. PUT yerine kısmi güncellemeler için kullanın.

await fetch(`/api/users/${id}`, {
  method: 'PATCH',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ email: 'new@example.com' })
});

DELETE İsteği

DELETE genellikle gövde içermez. Yanıt çoğu zaman gövde olmadan 204 No Content döndürür.

async function deleteUser(id) {
  const res = await fetch(`/api/users/${id}`, { method: 'DELETE' });
  if (!res.ok) throw new Error('Delete failed');
  // 204 No Content — no JSON to parse
}

Kimlik Doğrulama Üstbilgileri

Korunan uç noktalar için bir Authorization üstbilgisi ekleyin.

const res = await fetch('/api/me', {
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  }
});

URL Sorgu Parametreleri

Güvenli kodlama için sorgu dizelerini URLSearchParams ile oluşturun.

const params = new URLSearchParams({
  q: 'react hooks',
  page: '2',
  pageSize: '20'
});

const res = await fetch(`/api/search?${params}`);
// /api/search?q=react+hooks&page=2&pageSize=20

fetch HTTP Hatalarında Neden Hata Fırlatmaz?

fetch yalnızca ağ hatasında reddedilir — 404 veya 500 yanıtı yine de başarıyla çözümlenir. Her zaman res.ok değerini (2xx için true) veya res.status değerini kontrol edin ve hatayı kendiniz fırlatın.

const res = await fetch('/api/users/999');
if (!res.ok) {
  // res.ok is false for 4xx and 5xx
  throw new Error(`Server error ${res.status}: ${await res.text()}`);
}

İptal için AbortController

Güncelliğini yitirmiş sonuçları önlemek için sürmekte olan bir isteği iptal edin — yazarken arama ve React effect temizleme işlemleri için bu zorunludur.

const controller = new AbortController();

fetch('/api/search?q=hooks', { signal: controller.signal })
  .then(res => res.json())
  .catch(err => {
    if (err.name !== 'AbortError') throw err;
  });

// Cancel:
controller.abort();

FormData Gönderme

Dosya yüklemeleri veya çok parçalı formlar için gövde olarak bir FormData nesnesi iletin. Content-Type ayarlamayın — tarayıcı bunu doğru sınırla birlikte ekler.

const form = new FormData();
form.append('avatar', fileInput.files[0]);
form.append('name', 'Alice');

await fetch('/api/upload', { method: 'POST', body: form });
// no Content-Type header — browser sets multipart/form-data

Hızlı Kontrol

Sunucu 404 veya 500 döndürdüğünde fetch() neden hata fırlatmaz?

Özet: Fetch API'si

fetch() bir Response içeren Promise döndürür. Yöntemler: GET (varsayılan), POST, PUT, PATCH, DELETE. JSON gövdeleri için JSON.stringify() ve Content-Type üstbilgisi gerekir. fetch yalnızca ağ hatasında reddedilir — res.ok değerini kendiniz kontrol edin. Sorgu dizeleri için URLSearchParams kullanılır. İptal için AbortController kullanılır. Dosya yüklemeleri için FormData kullanılır (Content-Type ayarlanmaz — tarayıcı bunu yönetir).

Sıkça Sorulan Sorular

“Fetch API: GET POST PUT DELETE” dersi ücretsiz mi?

Evet — “Fetch API: GET POST PUT DELETE” 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.

“Fetch API: GET POST PUT DELETE” dersinde ne öğreneceğim?

fetch ile GET istekleri yapın, POST ve PUT isteklerinde JSON gövdeleri gönderin ve kaynakları kaldırmak için DELETE uç noktalarını çağırın. 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 1. dersidir.

“Fetch API: GET POST PUT DELETE” 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