Bloğa geri dön

React Uygulamasında HTTP İstemcisi Axios Kullanımı: Bir Öğretici

React Uygulamasında HTTP İstemcisi Axios Kullanımı: Bir Öğretici

Birçok web uygulaması, geliştirme süreçlerinin bir noktasında bir REST API ile arayüz oluşturma gereksinimiyle karşılaşır. React tabanlı web uygulamaları için, Axios, Angular.js v1.x içindeki $http servisini temel alan hafif bir HTTP istemcisini kullanabiliriz. Özellikleri JavaScript’in yerel Fetch API.

sine benzer. Axios promise tabanlıdır ve daha okunabilir senkron kodlar için JavaScript’in async ve await yapılarını entegre etmemize olanak tanır. Ayrıca istekleri kesmeyi (intercept) ve iptal etmeyi de destekler. Dahası, siteler arası istek sahtekarlığına karşı yerleşik istemci tarafı koruması sunar.

Bu kılavuzda, popüler JSON Placeholder API'sine erişmek için Axios'un bir demo React uygulamasında nasıl kullanılacağını göstereceğiz. Bu eğitimden JavaScript'teki JSON formatı hakkında daha fazla bilgi edinebilirsiniz.

Gereksinimler

Bu kılavuzda gösterilen adımları tamamlamak için aşağıdaki bileşenlere ihtiyacınız olacak:

Adım 1: React Projesine Axios Kurulumu

Axios, doğrudan bir npm modülü olarak mevcuttur. npm üzerindeki Axios sayfasına göz atın. Tek yapmamız gereken bir React projesi oluşturmak ve Axios paketini kurmaktır.

Aşağıdaki npx komutu, yeni bir React projesi oluşturmak için create-react-app komutunu çalıştıracaktır. Proje adı, proje için özel bir dizin oluşturmak amacıyla kullanılacaktır. Burada projeyi react-axios-demo olarak adlandırdık. Komutu çalıştırın:

npx create-react-app

Mevcut dizini yeni oluşturulan proje diziniyle değiştirin:

Ardından, Axios'u kurmak için npm install komutunu çağırın. Herhangi bir sürüm belirtilmezse, npm otomatik olarak Axios'un en son sürümünü indirip kuracaktır:

npm install axios

Projemiz artık Axios kullanmaya hazır! Şimdi özelliklerini harekete geçirme zamanı.

Adım 2: Bir GET İsteği Oluşturma

Bu adımda, bir GET isteği göndermek için Axios kullanan yeni bir bileşen oluşturmayı göstereceğiz.

İlk olarak, isimlerin listesini gösterecek yeni bir PersonList bileşeni oluşturun. Bileşeni depolamak için özel bir dizin oluşturun:

mkdir -pv

Ardından, PersonList.js :

Dosyayı bir metin düzenleyicide açın. Kolaylık ve okunabilirlik açısından Visual Studio Code kullanıyoruz. Aşağıdaki JavaScript kodunu girin:

 

this.state.persons

Burada:

  • Bileşende her ikisini de kullanabilmek için React ve Axios'u içe aktardık.

  • Biz componentDidMount yaşam döngüsü kancasına bağlanıp bir GET isteği gönderiyoruz.

Bir promise (bir yanıt nesnesi döndürür) elde etmek için bir API uç noktasından axios.get(<url>) kullanabilirsiniz. Yanıt nesnesi, istenen verileri içerir. Daha sonra bunu person değerine atarız. Ayrıca, res.status altındaki durum kodu gibi istek hakkında ek bilgileri veya res.request.

Ardından, bileşenimizi ana App.js dosyasına eklememiz gerekiyor. Aşağıdaki kodları ekleyin:

 

import PersonList

Bu adım için yapılandırma tamamlandı. Artık uygulamayı çalıştırabilir ve favori tarayıcınızı kullanarak test edebilirsiniz. Geliştirme sunucusunu başlatın:

Axios React code screenshot 1

Gördüğümüz gibi, çıktı rastgele sırada kişilerin isimlerinin bir listesini gösteriyor:

React app

Adım 3: Bir POST İsteği Oluşturma

Bu bölümde, olarak adlandırılan başka bir HTTP istek yöntemini gerçekleştirmek için Axios kullanımını göstereceğiz.POST. Bunu göstermek için amacımız, React projemize adında yeni bir bileşen oluşturmaktır.PersonAdd.

Şu dosyayı oluşturun: PersonAdd.js:

Axios React code screenshot 2

Ardından, dosyayı bir metin düzenleyicide açın ve aşağıdaki kodu girin:

Axios React code screenshot 3

Bu kodda, kullanıcı girdisini alıyor ve içeriği bir API'ye POST ediyoruz. handleSubmit fonksiyonu içinde, formun varsayılan eylemini engelliyor ve durumu kullanıcı girdisine göre güncelliyoruz. POST kullanıldığında aynı yanıt nesnesini döndürür. Bu nesneyi bir then çağrısı içinde kullanabiliriz. POST isteğini yerine getirmek için kullanıcı girdisini yakalıyor ve bunu POST isteğiyle birlikte ekliyoruz. Bu bize bir yanıt verir. Yanıtı console.log kullanarak günlüğe kaydediyoruz. Formdaki user girdisini göstermelidir.

Ardından, bileşeni App.js dosyasına ekleyin. Tam kod şu şekilde görünmelidir:

Axios React code screenshot 4

Şimdi, değişiklikleri test etme zamanı. Geliştirme sunucusunu başlatın:

Web tarayıcısındaki değişikliği kontrol edin:

Axios React code screenshot 5

Adım 4: Bir DELETE İsteği Oluşturma

Bu bölümde, yardımıyla bir API'den öğeleri silmeyi göstereceğiz.axios.delete ve parametre olarak bir URL kullanacağız. Bunu göstermek için PersonRemove bileşenini oluşturun. PersonRemove.js dosyasını src/components dizini altında oluşturun:

Axios React code screenshot 6

Bundan sonra, dosyayı bir metin düzenleyicide açın ve aşağıdaki kodu ekleyin:

Axios React code screenshot 7

Burada, res nesnesi istek hakkında bilgi sunmaktadır. Form gönderildikten sonra console.log işlevini kullanabiliriz.

Ardından, bileşeni App.js:

Axios React code screenshot 8

Kodumuzu tekrar test etme zamanı. Sunucuyu başlatın:

Kullanıcının adını alan ve listeden kaldıran yeni bir form görmelisiniz:

npm start

Adım 5: Axios'ta Temel Örneği (Base Instance) Uygulama

Şimdi Axios temel örneği (base instance) ile çalışacağız. Burada bir URL ve diğer yapılandırma öğelerini tanımlayabiliriz. Bunu uygulamak için ayrı bir dosya oluşturun: api.js:

Axios React code screenshot 9

Bir metin düzenleyicide açın ve aşağıdaki kodu girin:

export default axios.create

Bu ayarlandıktan sonra, bunu PersonRemove bileşeni içinde kullanabiliriz. Kod şu şekilde görünecektir:

Axios React code screenshot 10

Burada, http://jsonplaceholder.typicode.com/ temel URL olarak ayarlanır. Artık API'nin bir uç noktasına her ulaştığımızda tam URL'yi kullanmamıza gerek kalmaz.

Adım 6: async ve await Yapılarını Uygulama

Bu bölümde, promise'lerle çalışmak için async ve await yapılarının nasıl uygulanacağına bakacağız. await anahtar kelimesi promise yapısını çözümler ve bir değer döndürür. Daha rahat bir kullanım için bu değeri bir değişkene atayabiliriz.

Güncellenmiş PersonRemove.js kodu şu şekilde görünecektir:

Implement async and await

Burada, şunu değiştirdik: .then(). Bir kez promise çözüldüğünde, değeri şu değişkende saklarız: response.

Son Düşünceler

Bu eğitimde, REST API ile çalışmak için Axios kullanmanın çeşitli örneklerini inceledik. Kodlar, HTTP istekleri oluşturmayı ve yanıtları işlemeyi göstermektedir.

JavaScript hakkında daha fazla bilgi edinmek ister misiniz? Çeşitli JavaScript kavramları ve özellikleri hakkındaki diğer başlangıç kılavuzlarımıza göz atın, örneğin, tarih ve saat, dize manipülasyonu, sınıflar, ve nesneler.

Keyifli Kodlamalar!

author

Hark Labs

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.