Merhaba web geliştiricileri! Bugün, web API'leriyle etkileşim kurma ve dinamik web uygulamaları oluşturma şeklimizde devrim yaratan güçlü bir araç olan XMLHttpRequest (XHR) dünyasına dalacağız. Kemerlerinizi bağlayın, çünkü XHR'nin temelleri, pratik uygulamaları ve gelişmiş teknikleri üzerine bir yolculuğa çıkmak üzereyiz.
İlk olarak, kısa bir genel bakışla başlayalım. XMLHttpRequest, bir web sayfasına yeniden yükleme yapmadan, bir sunucuya HTTP istekleri göndermenize ve yanıtı eşzamansız olarak işlemenize olanak tanıyan, yerleşik bir JavaScript nesnesidir. Bu, uygulamanızı duyarlı ve verimli tutarken, veri getirebileceğiniz, içeriği güncelleyebileceğiniz ve kusursuz kullanıcı deneyimleri oluşturabileceğiniz anlamına gelir.
Modern web geliştirmede XHR'nin önemi abartılamaz. API'lerin yükselişi ve gerçek zamanlı verilere olan talebin artmasıyla birlikte, XHR, zengin, etkileşimli web uygulamaları oluşturmak için temel bir yapı taşı haline geldi. Sosyal medya akışlarından e-ticaret platformlarına kadar, XHR, beklemeye alıştığımız dinamik özellikleri güçlendiren, adı duyulmamış kahramandır.
Bu blog yazısında şunları ele alacağız:
- XMLHttpRequest'in Temellerini Anlamak
- XMLHttpRequest ile API Çağrıları Yapmak
- XMLHttpRequest'te Gelişmiş Teknikler
- XMLHttpRequest Kodu Oluşturmak için Apidog Kullanmak
XMLHttpRequest'in Temellerini Anlamak
XHR'nin inceliklerine dalmadan önce, bir adım geri atalım ve ne olduğunu ve web API'leri ekosistemine nasıl uyduğunu anlayalım. XMLHttpRequest, ilk olarak 1990'ların sonlarında Microsoft tarafından bir ActiveX nesnesi olarak tanıtıldı ve daha sonra diğer tarayıcılar tarafından standart bir API olarak benimsendi. Adına rağmen, XHR, API iletişimi için fiili standart haline gelen JSON dahil olmak üzere XML'nin ötesinde veri formatlarını işleyebilir.
XHR'nin temel sözdizimi nispeten basittir. Yeni bir XMLHttpRequest nesnesi örneği oluşturur, isteği (yöntem, URL, başlıklar vb.) yapılandırır, yanıtı işlemek için olay işleyicileri tanımlar ve son olarak isteği gönderirsiniz. XHR, open()
, send()
, onreadystatechange
ve status
gibi istek ve yanıt verileriyle etkileşim kurmak için çeşitli yöntemler ve özellikler sağlar.
XMLHttpRequest ile API Çağrıları Yapmak
Temelleri ele aldığımıza göre, XMLHttpRequest ile bir API çağrısı yapmanın pratik bir örneğine dalalım. Harici bir API'den verilerin nasıl getirileceğine ve alınan bilgilerle DOM'un nasıl güncelleneceğine dair adım adım bir kılavuzla ilerleyeceğiz.
İlk olarak, XMLHttpRequest nesnesinin yeni bir örneğini oluşturacağız ve isteği yapılandıracağız:
const xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.example.com/data', true);
Ardından, yanıt hazır olduğunda yanıtı işlemek için bir olay işleyicisi tanımlayacağız:
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
// Yanıt verilerini burada işleyin
const data = JSON.parse(xhr.responseText);
// Alınan verilerle DOM'u güncelleyin
document.getElementById('result').innerHTML = data.message;
}
};
Son olarak, isteği göndereceğiz:
xhr.send();
Bu örnekte, https://api.example.com/data
adresine bir GET
isteği yapıyoruz. Yanıt hazır olduğunda, JSON verilerini ayrıştırır ve DOM'u message
özelliğiyle güncelleriz.
Bu örnek basit olsa da, hataları işlemek, uygun başlıklar ayarlamak (örneğin, kimlik doğrulama için) ve harici etki alanlarına istek yaparken kaynaklar arası kaynak paylaşımını (CORS) yönetmek gibi dikkat edilmesi gereken yaygın tuzaklar vardır.
XMLHttpRequest'te Gelişmiş Teknikler
XHR'ye daha aşina hale geldikçe, daha gelişmiş teknikler gerektiren senaryolarla karşılaşmanız muhtemeldir. Bu bölümde, farklı veri formatlarıyla çalışma, eşzamansız işlemleri geri çağırmalarla yönetme ve kaynaklar arası kaynak paylaşımını ele alacağız.
Farklı veri formatlarıyla çalışma:
JSON, API iletişiminde kullanılan en yaygın veri formatı olsa da, XML veya diğer formatları işlemeniz gereken senaryolarla karşılaşabilirsiniz. XHR, farklı veri formatlarıyla çalışmak için responseXML
ve overrideMimeType()
gibi yöntemler sağlar.
Eşzamansız işlemleri geri çağırmalarla yönetme:
XHR, doğası gereği eşzamansızdır, bu da kodunuzun yürütme akışını engellemek yerine, yanıt hazır olduğunda yanıtı işlemesi gerektiği anlamına gelir. Bu genellikle geri çağırmalar veya daha modern JavaScript'te Promises ve async/await kullanılarak elde edilir.
Kaynaklar arası kaynak paylaşımı (CORS):
Harici etki alanlarına istek yaparken, XHR isteklerinizin başarılı olmasını engelleyen CORS kısıtlamalarıyla karşılaşabilirsiniz. Bunun üstesinden gelmek için, sunucuyu kaynaklar arası istekleri kabul etmeye yapılandırmanız veya sunucu tarafı proxy'leri veya JSONP (eski tarayıcılar için) gibi alternatif teknikler kullanmanız gerekir.
XMLHttpRequest Kodu Oluşturmak için Apidog Kullanın
XHR güçlü bir araç olsa da, özellikle karmaşık API etkileşimleri için kodu sıfırdan yazmak zaman alıcı ve hataya açık olabilir. İşte tam da bu noktada Apidog devreye giriyor - sizin için XMLHttpRequest kodu oluşturabilen, size değerli geliştirme zamanı kazandıran kullanışlı bir araç.
İşte Apidog'u Axios kodu oluşturmak için kullanma süreci:
Adım 1: Apidog'u açın ve yeni istek seçin

Adım 2: İstek göndermek istediğiniz API uç noktasının URL'sini girin, isteğe dahil etmek istediğiniz başlıkları veya sorgu dizesi parametrelerini girin, ardından Apidog'un tasarım arayüzüne geçmek için "Tasarım"a tıklayın.

Adım 3: Kodunuzu oluşturmak için "İstemci kodu oluştur"u seçin.

Adım 4: Oluşturulan Axios kodunu kopyalayın ve projenize yapıştırın.

Apidog'u kullanarak, API iletişiminin düşük seviyeli ayrıntılarıyla uğraşmak yerine, uygulama mantığınızı oluşturmaya odaklanabilirsiniz. İş akışlarını kolaylaştırmak ve üretkenliği artırmak isteyen geliştiriciler için oyunun kurallarını değiştiren bir araçtır.
Sonuç
XMLHttpRequest, modern web geliştirmesinin bir mihenk taşı olmuştur ve geliştiricilerin API'lerin ve gerçek zamanlı verilerin gücünden yararlanan zengin, etkileşimli web uygulamaları oluşturmasını sağlamıştır. Temelleri anlamaktan gelişmiş tekniklerde ustalaşmaya kadar, XHR, her web geliştiricisinin cephanesinde bulunması gereken çok yönlü bir araçtır.
XHR bize iyi hizmet ederken, JavaScript'teki API etkileşimlerinin geleceği Fetch API ve HTTP/3 gibi daha yeni standartlarda yatmaktadır. Bu modern API'ler, XHR'nin bazı sınırlamalarını ve karmaşıklığını ele alarak, ağ istekleri yapmanın daha kolaylaştırılmış ve verimli bir yolunu sunar.
Ancak, XHR web geliştirme ekosisteminin önemli bir parçası olmaya devam ediyor ve onda ustalaşmak yalnızca webin nasıl çalıştığına dair anlayışınızı derinleştirmekle kalmayacak, aynı zamanda sizi yeni nesil API etkileşimlerine de hazırlayacaktır.
Öyleyse, ne bekliyorsunuz? Bugün XMLHttpRequest ile pratik yapmaya başlayın ve verimli XHR kodu oluşturmak ve API entegrasyonu iş akışınızı kolaylaştırmak için gizli silahınız olan Apido'yu kontrol etmeyi unutmayın.
İyi kodlamalar!