En kritik görevlerden biri, sunuculardan veri almaktır. İstek gönderme ve yanıt alma işlemlerini içeren bu süreç, çoğu modern web uygulamasının bel kemiğidir. Bu makale, herhangi bir HTTP isteğinin iki temel bileşeni olan body ve header ile veri alma konusunda kapsamlı bir rehber sunmaktadır. İster deneyimli bir geliştirici olun, ister yeni başlayan biri, bu rehber size uygulamalarınızda verileri etkili bir şekilde almak için ihtiyacınız olan bilgi ve becerileri sağlayacaktır. Hadi başlayalım!
Fetch'i Anlamak
fetch()
fonksiyonu, JavaScript'te ağ istekleri yapmak için güçlü bir araçtır. İşte neden kullanmak isteyebileceğiniz ve nasıl kullanabileceğiniz:
- Asenkron İşlemler:
fetch()
, asenkron AJAX çağrıları yapmanıza olanak tanır. Bu, diğer talimatların yürütülmesini durdurmadan bir API'den veri talep edebileceğiniz anlamına gelir. Sitenizdeki diğer fonksiyonlar, bir API çağrısı çözülmemiş olsa bile çalışmaya devam edecektir. - Promise Tabanlı: Geri çağırma tabanlı olan XMLHttpRequest'in aksine, Fetch promise tabanlıdır ve modern JavaScript uygulamalarında kullanımı ve yönetimi daha kolay hale getirir.
- Çok Yönlü: Fetch, çeşitli istek türleri (GET, POST, PUT, DELETE, vb.) ve veri formatları için kullanılabilir.
İşte fetch()
'i bir GET isteği yapmak için nasıl kullanacağınıza dair temel bir örnek:
fetch('https://example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Bu örnekte, fetch()
, almak istediğiniz kaynağın URL'si ile çağrılır. Fonksiyon, başarılı olsun ya da olmasın, o isteğe yanıt veren bir Promise döndürür. Daha sonra, yanıt verilerini JSON olarak ayrıştırmak için .json()
yöntemini kullanabilirsiniz.

Body ve Header ile Fetch Kullanımı
JavaScript'te Fetch API'sini kullanırken, GET isteğinize başlıklar ve bir body ekleyebilirsiniz. Ancak, HTTP/1.1 spesifikasyonuna göre, bir GET isteğinin bir body içermemesi gerektiğini unutmamak önemlidir. Bazı sunucular bunu kabul edebilirken, diğerleri reddedebilir veya görmezden gelebilir.
İşte başlıklarla bir fetch isteğini nasıl yapılandırabileceğinize dair bir örnek:
fetch('https://api.example.com/data', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN_HERE'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch((error) => {
console.error('Error:', error);
});
Bu örnekte, 'https://api.example.com/data' adresine bir GET isteği gönderiyoruz. İki başlık ekliyoruz: 'Content-Type' ve 'Authorization'. 'Content-Type' başlığı, JSON verisi gönderdiğimizi belirtir. 'Authorization' başlığı, kimlik doğrulama için bir taşıyıcı belirteci içerir.
Fetch isteğinize bir body eklemek istiyorsanız, POST gibi farklı bir HTTP yöntemi kullanmak isteyebilirsiniz. İşte bir örnek:
fetch('https://api.example.com/data', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN_HERE'
},
body: JSON.stringify({
key1: 'value1',
key2: 'value2'
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch((error) => {
console.error('Error:', error);
});
Bu örnekte, bir GET isteği yerine bir POST isteği gönderiyoruz. Aynı başlıkları ekliyoruz, ancak aynı zamanda bir body de ekliyoruz. Body, bir JavaScript nesnesini temsil eden bir JSON dizesidir.

Apidog Kullanarak Body ve Header ile GET İstekleri Nasıl Gönderilir
Apidog, body ve header parametreleriyle GET istekleri göndermenize yardımcı olabilecek güçlü bir araçtır.
Header ile:
Apidog'u açın ve New Request (Yeni İstek) düğmesine tıklayın.

GET isteği göndermek istediğiniz API uç noktasının URL'sini girin, ardından Headers (Başlıklar) sekmesine tıklayın ve istediğiniz seçeneği belirleyin. Bu örnekte, Yetkilendirme'yi seçiyoruz.

Kimlik bilgilerinizi ekleyin (sunucu doğrulaması için gereken gerçek veriler, örneğin, kullanıcı adı/parola, belirteç, karma)

İsteği gönderin ve yanıtı analiz edin.

Apidog, yetkilendirme başlıklarıyla çalışmayı kolaylaştırır, böylece API'lerinizi güvenle test edebilirsiniz!
Body ile:
Body ile GET isteklerini test etmek, HTTP spesifikasyonu geleneksel olarak GET isteklerini idempotent (sunucunun durumunu değiştirmediği anlamına gelir) olarak kabul ettiğinden biraz zor olabilir. Ancak, bazı API'ler, GET isteklerinde bile bir istek body'si ekleyebileceğiniz özel davranışa izin verebilir.
“Body” sekmesine geçin ve eklemek istediğiniz body spesifikasyonunu seçin.

İsteği gönderin ve yanıt durum kodunun ok olduğunu doğrulayın.

Body ile GET isteklerini test etmenin yaygın olmayabileceğini unutmayın, API'nizin davranışını anlamak ve tüm senaryolar için kapsamlı testler yapmak önemlidir. Apidog, API tasarımı, hata ayıklama ve test için araçlar sağlayarak bu süreci basitleştirebilir.
Fetch Kodunu Otomatik Olarak Oluşturmak için Apidog Kullanma
Apidog ayrıca HTTP istekleri yapmak için otomatik olarak Fetch kodu oluşturmanıza olanak tanır. İşte Apidog'u Fetch kodu oluşturmak için nasıl kullanacağınız:
- İstekle göndermek istediğiniz herhangi bir başlığı veya sorgu dizesi parametresini girin, ardından Generate Code (Kod Oluştur) düğmesine tıklayın.

2. Oluşturulan Fetch kodunu kopyalayın ve projenize yapıştırın.

Body ve Header ile Fetch İstekleri için En İyi Uygulamalar
İşte Fetch API'sini body ve header ile kullanmak için bazı en iyi uygulamalar:
- Promises Kullanın: Fetch API, asenkron işlemler üzerinde daha iyi kontrol sağlayan Promises üzerine kuruludur. Promises, geri çağırmalara veya olay dinleyicileri yönetmeye gerek kalmadan daha basit hata işleme sağlar.
- Daha Basit Sözdizimi: XMLHttpRequest ile karşılaştırıldığında, Fetch API daha modern ve sezgisel bir sözdizimi sağlar. Geliştiricilerin yöntemleri zincirlemesine ve async/await kullanarak yanıtları işlemesine olanak tanıyan, daha temiz ve daha okunabilir kodla sonuçlanan, basit bir promise tabanlı yaklaşım kullanır.
- Akıcı Yanıt İşleme: Fetch API, JSON ayrıştırma, metin çıkarma ve yanıt başlıklarını okuma dahil olmak üzere yanıt verilerine erişmek için uygun yöntemler sağlayan bir Response nesnesi döndürür. Yanıttan veri çıkarma ve işleme sürecini basitleştirir.
- Çapraz Köken Kaynak Paylaşımı (CORS) Desteği: Fetch API, Çapraz Köken Kaynak Paylaşımını (CORS) daha şeffaf bir şekilde ele alır.
- Hata İşleme: Fetch isteklerinizde her zaman hata işleme ekleyin. Fetch işlemi sırasında oluşabilecek hataları işlemek için
.catch()
kullanabilirsiniz. - Başlıklar: Bir POST isteği yaparken, JSON verisi gönderiyorsanız
Content-Type
başlığınıapplication/json
olarak ayarlamak önemlidir. Bu, sunucunun ne tür bir veri beklediğini bilmesini sağlar. - Body: Bir POST isteği için, bir JSON dizesini girdi olarak geçmek için
body
özelliğini kullanabilirsiniz. İstek body'sinin bir JSON dizesi olması, başlıkların ise bir JSON nesnesi olması gerektiğini unutmayın. - JSON Verilerinizi Dizeye Dönüştürün: Sunucuya göndermeden önce JSON verilerinizi dizeye dönüştürdüğünüzden emin olun. Bu, JavaScript nesnesini, daha sonra ağ üzerinden gönderilebilen bir dizeye dönüştürür.
Sonuç
Sonuç olarak, body ve header ile veri alma süreci, modern web geliştirmenin önemli bir yönüdür. Bu kapsamlı rehber, bu süreçte yer alan yöntemler, teknikler ve en iyi uygulamalar hakkında derinlemesine bir inceleme sağlamıştır. İstekleri nasıl yapılandıracağımızı, başlıkların meta verileri iletmedeki önemini ve body'nin gerçek verileri iletmedeki rolünü inceledik. Bu kavramları anlamak, verimli, güvenli ve sağlam uygulamalar oluşturmanın anahtarıdır. Teknoloji gelişmeye devam ettikçe, veri almak için kullandığımız yöntemler de öyle olacaktır. Ancak, bu rehberde özetlenen ilkeler, bu sürekli değişen ortamın temel bir parçası olarak kalacaktır. İyi kodlamalar!