FrontEnd Developer Road Map

React Tutorial 2023 60 – API İşlemleri 4 – Fetch API Get İsteği

Merhabalar.

Bir önceki yazımda projemizi oluşturmuştuk. Artık bir Get isteği atıp verilerimizi çekelim.

Öncelikle Fetch API Get isteğinin genel yapısını görelim detaylarına bakalım.

Fetch API Get İsteği Genel Yapı

fetch API, web tarayıcılarında ve Node.js ortamında kullanılabilen bir JavaScript API’sidir ve ağ üzerinden kaynaklara HTTP istekleri göndermek ve almak için kullanılır. İşte basit bir GET isteğinin yapısı:

fetch('hedef_url')

  .then(response => {

    // Sunucudan gelen cevap başarıyla alındı

    if (!response.ok) {

      throw new Error('Network response was not ok');

    }

    return response.json(); // Cevabı JSON formatına çevir

  })

  .then(data => {

    // JSON verileri üzerinde çalış

    console.log(data);

  })

  .catch(error => {

    // Hata durumunda işlemler
    console.error('Fetch error:', error);

  });

Bu örnek, bir URL’ye basit bir GET isteği gönderir. İlk olarak, fetch fonksiyonu ile istek yapılır. Ardından, gelen cevap kontrol edilir, başarılıysa cevap JSON formatına çevrilir ve isteğin sonucu üzerinde işlem yapılır. Eğer bir hata olursa, catch bloğu hata durumuyla başa çıkar.

Şimdi BlogPost.jsx kodlarımıza tekrardan bir bakalım ve fonksiyonumuzu eklemeye çalışalım.

import React, { useState } from 'react'
import './BlogPost.css'

const BlogPost = () => {
    const [posts, setPosts] = useState([]);

    return (
        <div className="blogPost">
            <button onClick={loadPosts}>Load Posts</button>
            {posts.map((post) => (
                <div key={post.id} className="post">
                    <h2>{post.title}</h2>
                    <p>{post.body}</p>
                </div>
            ))}
        </div>
    );
}

export default BlogPost

Butonumuza bir onClick event’i ekledim ve loadPosts isminde bir fonksiyona bağladım.

Bu fonksiyon Get isteğini /posts endpoint’ine atıp verileri getirecek.

const loadPosts = () => {

        fetch('https://jsonplaceholder.typicode.com/posts')
            .then(response => {
                
                if (!response.ok) {
                    throw new Error('Network response was not ok');
                }
                return response.json();
            })
            .then(data => {
                
                setPosts(data);
            })
            .catch(error => {
               
                console.error('Fetch error:', error);
            });
    };

Aşama aşama gidelim:

fetch('https://jsonplaceholder.typicode.com/posts'): fetch fonksiyonu, belirtilen URL’den veri çekmeyi başlatıyor. Bu durumda, JSONPlaceholder’ın post verilerini içeren endpoint’e bir HTTP GET isteği yapılıyor.

.then(response => {: fetch işlemi tamamlandığında, bir response objesi döner. İlk .then bloğu, bu yanıtı ele alır.

if (!response.ok) { throw new Error('Network response was not ok'); }: Eğer yanıtın durumu (HTTP durum kodu) “ok” değilse (örneğin, 404 Not Found veya 500 Internal Server Error gibi), bir hata fırlatılır.

return response.json();: Eğer yanıt başarılıysa, yanıtın içindeki JSON verilerini çözerek bir Promise döndürülür.

.then(data => { setPosts(data); }): JSON verileri çözüldükten sonra, bu .then bloğu, çözülen verileri alır ve setPosts fonksiyonunu kullanarak bu verileri işler. Bu kısmı uygulamanın durumunu güncellemek veya başka bir işlem yapmak için kullanabilirsiniz.

.catch(error => { console.error('Fetch error:', error); });: Eğer herhangi bir aşamada bir hata olursa, bu .catch bloğu çalışır. Hata konsola yazdırılır.

İşte ilk get isteğimizi attık ve verilerimizi aldık.

Sayfaya gider Load Posts butonuna tıklarsam aşağıdaki gibi bir görüntü elde ederim.

Böylece bir API’dan ilk verilerimizi getirebilmiş olduk.

Bir sonraki yazımda görüşmek üzere.

Murat Bilginer

21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.

Share
Published by
Murat Bilginer

Recent Posts

Kedimiz Oly & FIP Süreci 9 – 1 Haftalık GS İğnesi Serüveni – Oly İyileşiyor mu?

Selamlar, bu yazımda Oly'nin 1 hafta boyunca olduğu GS iğnesi, yaşanan değişimleri anlatmaya çalışacağım. PCR…

2 gün ago

Kedimiz Oly & FIP Süreci 8 – Yeniden Hayvan Hastanesi – Sonuç Kontrolü ve Sonrası…

Selamlar, bu yazımda Hemogram ve Biyokimya sonuçlarımızı göstermek için İÜCHH'ne tekrar gidişimizi ve sonrasını anlatacağım.…

2 gün ago

Kedimiz Oly & FIP Süreci 7 – GS İğnesine Başlama Kararımız ve Oly’de Dikkat Ettiklerimiz

Selamlar, bu yazımda GS iğnesine başlama kararımızı ve Oly’de bu süreçte nelere dikkat ediyor, neler…

2 gün ago

Kedimiz Oly & FIP Süreci 6 – İstanbul Üniversitesi Cerrahpaşa Hayvan Hastanesi Serüveni ve Sonrası

Selamlar, bu yazımda İÜCHH'deki tedavi sürecimiz ve sonrasında yaşananlardan bahsetmeye çalışacağım. 20.06.2025 Cuma günü saat…

3 gün ago

Kedimiz Oly & FIP Süreci 5 – Teşhisten Önce Biz… Veterinerimize Güvenebilir Miydik?

Eve Dönüş ve İlk Şüpheler 18 Haziran Perşembe saat 23 sularında İstanbul’daki evimize giriş yaptık.…

4 gün ago

Kedimiz Oly & FIP Süreci 4 – Antalya’ya Yolculuk – Bir Şeyler Ters Gidiyor… & İstanbul’a Geri Dönüş

9 Haziran Pazartesi günü Aydın’daki sürecimiz bitti ve Antalya yolculuğumuz başladı. Saat 11 gibi yola…

4 gün ago